krateng/maloja

View on GitHub
maloja/database/__init__.py

Summary

Maintainability
F
4 days
Test Coverage

File __init__.py has 693 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# server
from bottle import request, response, FormsDict


# decorator that makes sure this function is only run in normal operation,
Severity: Major
Found in maloja/database/__init__.py - About 1 day to fix

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

    def get_performance(dbconn=None,**keys):
    
        # amountkeys for pulse and performance aren't really necessary
        # since the amount of entries is completely determined by the time keys
        # but lets just include it in case
    Severity: Minor
    Found in maloja/database/__init__.py - 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

    Function artist_info has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

    def artist_info(dbconn=None,**keys):
    
        artist = keys.get('artist')
        if artist is None: raise exceptions.MissingEntityParameter()
    
    
    Severity: Minor
    Found in maloja/database/__init__.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 get_predefined_rulesets has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_predefined_rulesets(dbconn=None):
        validchars = "-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    
        rulesets = []
    
    
    Severity: Minor
    Found in maloja/database/__init__.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 album_info has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
    Open

    def album_info(dbconn=None,reduced=False,**keys):
    
        album = keys.get('album')
        if album is None: raise exceptions.MissingEntityParameter()
    
    
    Severity: Minor
    Found in maloja/database/__init__.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

    Consider simplifying this complex logical expression.
    Open

        if len(parent_artists) == 0:
            c = [e for e in alltimecharts if e["artist"] == artist]
            position = c[0]["rank"] if len(c) > 0 else None
            others = sqldb.get_associated_artists(artist,dbconn=dbconn)
            result.update({
    Severity: Critical
    Found in maloja/database/__init__.py - About 1 hr to fix

      Consider simplifying this complex logical expression.
      Open

          if reduced:
              pass
          else:
              twk = thisweek()
              tyr = thisyear()
      Severity: Critical
      Found in maloja/database/__init__.py - About 1 hr to fix

        Function track_info has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
        Open

        def track_info(dbconn=None,**keys):
        
            track = keys.get('track')
            if track is None: raise exceptions.MissingEntityParameter()
        
        
        Severity: Minor
        Found in maloja/database/__init__.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_pulse has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
        Open

        def get_pulse(dbconn=None,**keys):
        
            # amountkeys for pulse and performance aren't really necessary
            # since the amount of entries is completely determined by the time keys
            # but lets just include it in case
        Severity: Minor
        Found in maloja/database/__init__.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 rawscrobble_to_scrobbledict has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
        Open

        def rawscrobble_to_scrobbledict(rawscrobble, fix=True, client=None):
            # raw scrobble to processed info
            scrobbleinfo = {**rawscrobble}
            if fix:
                scrobbleinfo['track_artists'],scrobbleinfo['track_title'] = cla.fullclean(scrobbleinfo['track_artists'],scrobbleinfo['track_title'])
        Severity: Minor
        Found in maloja/database/__init__.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 incoming_scrobble has 5 arguments (exceeds 4 allowed). Consider refactoring.
        Open

        def incoming_scrobble(rawscrobble,fix=True,client=None,api=None,dbconn=None):
        Severity: Minor
        Found in maloja/database/__init__.py - About 35 mins to fix

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

          def get_top_tracks(dbconn=None,compatibility=True,**keys):
          
              rngs = ranges(**{k:keys[k] for k in keys if k in ["since","to","within","timerange","step","stepn","trail"]})
              results = []
          
          
          Severity: Minor
          Found in maloja/database/__init__.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_top_albums has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_top_albums(dbconn=None,compatibility=True,**keys):
          
              rngs = ranges(**{k:keys[k] for k in keys if k in ["since","to","within","timerange","step","stepn","trail"]})
              results = []
          
          
          Severity: Minor
          Found in maloja/database/__init__.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 incoming_scrobble has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
          Open

          def incoming_scrobble(rawscrobble,fix=True,client=None,api=None,dbconn=None):
          
              missing = []
              for necessary_arg in ["track_artists","track_title"]:
                  if not necessary_arg in rawscrobble or len(rawscrobble[necessary_arg]) == 0:
          Severity: Minor
          Found in maloja/database/__init__.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_top_artists has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_top_artists(dbconn=None,compatibility=True,**keys):
          
              separate = keys.get('separate')
          
              rngs = ranges(**{k:keys[k] for k in keys if k in ["since","to","within","timerange","step","stepn","trail"]})
          Severity: Minor
          Found in maloja/database/__init__.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_charts_artists has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_charts_artists(dbconn=None,resolve_ids=True,**keys):
              (since,to) = keys.get('timerange').timestamps()
              separate = keys.get('separate',False)
              result = sqldb.count_scrobbles_by_artist(since=since,to=to,resolve_ids=resolve_ids,associated=(not separate),dbconn=dbconn)
          
          
          Severity: Minor
          Found in maloja/database/__init__.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

          Function get_scrobbles has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_scrobbles(dbconn=None,**keys):
              (since,to) = keys.get('timerange').timestamps()
          
              reverse = keys.get('reverse',True) # comaptibility with old calls
              if keys.get('perpage',math.inf) is not math.inf:
          Severity: Minor
          Found in maloja/database/__init__.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

          Function get_featured has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

          def get_featured(dbconn=None):
              # temporary stand-in
              ranges = [
                  MTRangeComposite(since=today().next(-14),to=today()),
                  MTRangeComposite(since=thisweek().next(-12),to=thisweek()),
          Severity: Minor
          Found in maloja/database/__init__.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

          There are no issues that match your filters.

          Category
          Status