prefeiturasp/SME-PratoAberto-API

View on GitHub

Showing 19 of 42 total issues

File api.py has 938 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# -*- coding: utf-8 -*-
import json
import os
from datetime import datetime

Severity: Major
Found in api.py - About 2 days to fix

    Function find_menu_json has a Cognitive Complexity of 39 (exceeds 5 allowed). Consider refactoring.
    Open

    def find_menu_json(request_data, dia, is_pdf=False):
        """ Return json's menu from a school """
        school_name = request_data.args.get('nome')
    
        if not dia:
    Severity: Minor
    Found in api.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

    Function _mixer_list_menu has a Cognitive Complexity of 28 (exceeds 5 allowed). Consider refactoring.
    Open

    def _mixer_list_menu(new_list, orphan_list):
        if len(orphan_list) > 0:
            for key, value in new_list.items():
                cont = 0
                for v in value:
    Severity: Minor
    Found in api.py - About 4 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 has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
    Open

        def get(self):
            """retorna as escolas para o editor"""
            try:
                key = request.headers.get('key')
                if key and API_KEY and key != API_KEY:
    Severity: Minor
    Found in api.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 has a Cognitive Complexity of 18 (exceeds 5 allowed). Consider refactoring.
    Open

        def get(self, id_escola, data=None):
            """retorna os cardápios de uma escola em um período"""
            escola = db.escolas.find_one({'_id': id_escola}, {'_id': False})
            if escola:
                query = {
    Severity: Minor
    Found in api.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 has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
    Open

        def get(self):
            db.cardapios.create_index([('data', -1)])
            """retorna os cardápios para o editor"""
            key = request.headers.get('key')
            if key != API_KEY:
    Severity: Minor
    Found in api.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 adjust_ages has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

    def adjust_ages(menu_dict):
        if next((True for item in menu_dict if item['idade'] == 'Toda Idade'), False) and \
                next((True for item in menu_dict if item['idade'] == 'Todas as idades'), False):
            menu_dict_ordered = sorted(menu_dict, key=lambda kv: (kv['data'], kv['idade']))
            cardapio = None
    Severity: Minor
    Found in api.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 _reorganizes_data_menu has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
    Open

    def _reorganizes_data_menu(menu_dict):
        age_list = []
        age_dict = {}
    
        [age_list.append(value['idade']) for value in menu_dict if value['idade'] not in age_list]
    Severity: Minor
    Found in api.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 has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
    Open

        def get(self, id_escola):
            """Retorna os dados relacionados à uma escola"""
            raw = request.args.get('raw', False)
            query = {'_id': id_escola, 'status': 'ativo'}
            fields = {'_id': False, 'status': False}
    Severity: Minor
    Found in api.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 _separate_menu_by_category has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

    def _separate_menu_by_category(data):
        orphan_list = {}
        new_list = {}
        just_one = False
        """ Loop to separate dicts """
    Severity: Minor
    Found in api.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 post has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

        def post(self):
            """atualiza os cardápios pelo editor"""
            key = request.headers.get('key')
            if key != API_KEY:
                return ('', 401)
    Severity: Minor
    Found in api.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 get has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

        def get(self):
            """retorna os cardápios de unidades especiais para o editor"""
            key = request.headers.get('key')
            if key != API_KEY:
                return ('', 401)
    Severity: Minor
    Found in api.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

    Avoid deeply nested control flow statements.
    Open

                        if len(or_value) > 0:
                            for o_v in or_value:
                                if key == or_key and v['data'] == o_v['data']:
                                    key_orphan = list(o_v['cardapio'].keys())[0]
                                    value_orphan = list(o_v['cardapio'].values())[0]
    Severity: Major
    Found in api.py - About 45 mins to fix

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

      def sort_cardapio_por_refeicao(refeicoes_desord):
          ordens_refeicao = ['Desjejum', 'Colação', 'Almoço', 'Lanche', 'Refeição da Tarde',
                             'Lanche - Permanência de 4 ou 8 horas',
                             'Lanche - Permanência de 5 ou 6 horas', 'Lanche - Permanência de 5 ou 6 horas',
                             'Lanche Período Integral', 'Refeição',
      Severity: Minor
      Found in utils.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 has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

          def get(self, ids_escolas=None):
              if ids_escolas:
                  array_ids = [int(e) for e in ids_escolas.split(',')]
                  editais = db.escolas_editais.find({'data_fim': None,
                                                     'escola': {'$in': array_ids}})
      Severity: Minor
      Found in api.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 filter_by_menu_school has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

      def filter_by_menu_school(categories, menu_type_by_school):
          new_dict_categories = {}
          for key, values in categories.items():
              new_dict_categories[key] = []
              for category in values:
      Severity: Minor
      Found in api.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 wipe_unused has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

      def wipe_unused(basedir, limit):
          """
          Remove files in *basedir* not accessed within *limit* minutes
      
          :param basedir: directory to clean
      Severity: Minor
      Found in api.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 has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

          def get(self):
              response = {}
              if 'editais' not in db.collection_names():
                  db.create_collection('editais')
                  db.editais.insert_many([
      Severity: Minor
      Found in api.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 _reorganizes_date has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
      Open

      def _reorganizes_date(menu_dict):
          date_dict = {}
      
          for age, menu in menu_dict.items():
              date_dict[age] = []
      Severity: Minor
      Found in api.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