coursera-dl/coursera-dl

View on GitHub

Showing 50 of 71 total issues

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

# vim: set fileencoding=utf8 :
"""
This module contains implementations of different APIs that are used by the
downloader.
"""
Severity: Major
Found in coursera/api.py - About 3 days to fix

    Function _parse_on_demand_syllabus has a Cognitive Complexity of 69 (exceeds 5 allowed). Consider refactoring.
    Open

        def _parse_on_demand_syllabus(self, course_name, page, reverse=False,
                                      unrestricted_filenames=False,
                                      subtitle_language='en',
                                      video_resolution=None,
                                      download_quizzes=False,
    Severity: Minor
    Found in coursera/extractors.py - About 1 day 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

    File commandline.py has 418 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    """
    This module contains code that is related to command-line argument
    handling. The primary candidate is argument parser.
    """
    
    
    Severity: Minor
    Found in coursera/commandline.py - About 6 hrs to fix

      Function _extract_subtitles_from_video_dom has a Cognitive Complexity of 32 (exceeds 5 allowed). Consider refactoring.
      Open

          def _extract_subtitles_from_video_dom(self, video_dom,
                                                subtitle_language, video_id):
              # subtitles and transcripts
              subtitle_nodes = [
                  ('subtitles', 'srt', 'subtitle'),
      Severity: Minor
      Found in coursera/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

      CourseraOnDemand has 36 functions (exceeds 20 allowed). Consider refactoring.
      Open

      class CourseraOnDemand(object):
          """
          This is a class that provides a friendly interface to extract certain
          parts of on-demand courses. On-demand class is a new format that Coursera
          is using, they contain `/learn/' in their URLs. This class does not support
      Severity: Minor
      Found in coursera/api.py - About 4 hrs to fix

        Function main has a Cognitive Complexity of 30 (exceeds 5 allowed). Consider refactoring.
        Open

        def main():
            """
            Main entry point for execution as a program (instead of as a module).
            """
        
        
        Severity: Minor
        Found in coursera/coursera_dl.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 _start_download has a Cognitive Complexity of 27 (exceeds 5 allowed). Consider refactoring.
        Open

            def _start_download(self, url, filename, resume=False):
                # resume has no meaning if the file doesn't exists!
                resume = resume and os.path.exists(filename)
        
                headers = {}
        Severity: Minor
        Found in coursera/downloaders.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_notebook_folder has a Cognitive Complexity of 26 (exceeds 5 allowed). Consider refactoring.
        Open

            def _get_notebook_folder(self, url, jupyterId, **kwargs):
        
                supplement_links = {}
        
                url = url.format(**kwargs)
        Severity: Minor
        Found in coursera/api.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 find_resources_to_get has a Cognitive Complexity of 23 (exceeds 5 allowed). Consider refactoring.
        Open

        def find_resources_to_get(lecture, file_formats, resource_filter, ignored_formats=None):
            """
            Select formats to download.
            """
            resources_to_get = []
        Severity: Minor
        Found in coursera/filtering.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

        File downloaders.py has 300 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        # -*- coding: utf-8 -*-
        """
        Module for download-related classes and functions.
        
        We currently support an internal downloader written in Python with just the
        Severity: Minor
        Found in coursera/downloaders.py - About 3 hrs to fix

          Function download_modules has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
          Open

              def download_modules(self, modules):
                  completed = True
                  modules = _iter_modules(
                      modules, self._class_name, self._path,
                      self._ignored_formats, self._args)
          Severity: Minor
          Found in coursera/workflow.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 parse_args has 67 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          def parse_args(args=None):
              """
              Parse the arguments/options passed to the program on the command line.
              """
          
          
          Severity: Major
          Found in coursera/commandline.py - About 2 hrs to fix

            File cookies.py has 278 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            # -*- coding: utf-8 -*-
            
            """
            Cookie handling module.
            """
            Severity: Minor
            Found in coursera/cookies.py - About 2 hrs to fix

              Function __fixed_init__ has 18 arguments (exceeds 4 allowed). Consider refactoring.
              Open

              def __fixed_init__(self, version, name, value,
              Severity: Major
              Found in coursera/cookies.py - About 2 hrs to fix

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

                    def _handle_resource(self, url, fmt, lecture_filename, callback, last_update):
                        """
                        Handle resource. This function builds up resource file name and
                        downloads it if necessary.
                
                
                Severity: Minor
                Found in coursera/workflow.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 _iter_modules has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
                Open

                def _iter_modules(modules, class_name, path, ignored_formats, args):
                    """
                    This huge function generates a hierarchy with hopefully more
                    clear structure of modules/sections/lectures.
                    """
                Severity: Minor
                Found in coursera/workflow.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 parse_args has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
                Open

                def parse_args(args=None):
                    """
                    Parse the arguments/options passed to the program on the command line.
                    """
                
                
                Severity: Minor
                Found in coursera/commandline.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 _parse_on_demand_syllabus has 9 arguments (exceeds 4 allowed). Consider refactoring.
                Open

                    def _parse_on_demand_syllabus(self, course_name, page, reverse=False,
                Severity: Major
                Found in coursera/extractors.py - About 1 hr to fix

                  Function download_on_demand_class has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def download_on_demand_class(session, args, class_name):
                      """
                      Download all requested resources from the on-demand class given
                      in class_name.
                  
                  
                  Severity: Minor
                  Found in coursera/coursera_dl.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 _walk_modules has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                  Open

                  def _walk_modules(modules, class_name, path, ignored_formats, args):
                      """
                      Helper generator that traverses modules in returns a flattened
                      iterator.
                      """
                  Severity: Minor
                  Found in coursera/workflow.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

                  Severity
                  Category
                  Status
                  Source
                  Language