tensorflow/tensorflow

View on GitHub
configure.py

Summary

Maintainability
F
1 wk
Test Coverage

File configure.py has 1167 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# Copyright 2017 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
Severity: Major
Found in configure.py - About 3 days to fix

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

    def main():
      global _TF_WORKSPACE_ROOT
      global _TF_BAZELRC
      global _TF_CURRENT_BAZEL_VERSION
    
    
    Severity: Minor
    Found in configure.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

    Function set_tf_cuda_compute_capabilities has a Cognitive Complexity of 35 (exceeds 5 allowed). Consider refactoring.
    Open

    def set_tf_cuda_compute_capabilities(environ_cp):
      """Set TF_CUDA_COMPUTE_CAPABILITIES."""
      while True:
        native_cuda_compute_capabilities = get_native_cuda_compute_capabilities(
            environ_cp)
    Severity: Minor
    Found in configure.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 validate_cuda_config has a Cognitive Complexity of 23 (exceeds 5 allowed). Consider refactoring.
    Open

    def validate_cuda_config(environ_cp):
      """Run find_cuda_config.py and return cuda_toolkit_path, or None."""
    
      def maybe_encode_env(env):
        """Encodes unicode in env to str on Windows python 2.x."""
    Severity: Minor
    Found in configure.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_var has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_var(environ_cp,
                var_name,
                query_item,
                enabled_by_default,
                question=None,
    Severity: Minor
    Found in configure.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 setup_python has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
    Open

    def setup_python(environ_cp):
      """Setup python related env variables."""
      # Get PYTHON_BIN_PATH, default is the current running python.
      default_python_bin_path = sys.executable
      ask_python_bin_path = ('Please specify the location of python. [Default is '
    Severity: Minor
    Found in configure.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 main has 42 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    def main():
      global _TF_WORKSPACE_ROOT
      global _TF_BAZELRC
      global _TF_CURRENT_BAZEL_VERSION
    
    
    Severity: Minor
    Found in configure.py - About 1 hr to fix

      Function set_system_libs_flag has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

      def set_system_libs_flag(environ_cp):
        """Set system libs flags."""
        syslibs = environ_cp.get('TF_SYSTEM_LIBS', '')
      
        if is_s390x() and 'boringssl' not in syslibs:
      Severity: Minor
      Found in configure.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 system_specific_test_config has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

      def system_specific_test_config(environ_cp):
        """Add default build and test flags required for TF tests to bazelrc."""
        write_to_bazelrc('test --test_size_filters=small,medium')
      
        # Each instance of --test_tag_filters or --build_tag_filters overrides all
      Severity: Minor
      Found in configure.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 prompt_loop_or_load_from_env has 9 arguments (exceeds 4 allowed). Consider refactoring.
      Open

      def prompt_loop_or_load_from_env(environ_cp,
      Severity: Major
      Found in configure.py - About 1 hr to fix

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

        def cleanup_makefile():
          """Delete any leftover BUILD files from the Makefile build.
        
          These files could interfere with Bazel parsing.
          """
        Severity: Minor
        Found in configure.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 set_action_env_var has 8 arguments (exceeds 4 allowed). Consider refactoring.
        Open

        def set_action_env_var(environ_cp,
        Severity: Major
        Found in configure.py - About 1 hr to fix

          Function get_var has 7 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          def get_var(environ_cp,
          Severity: Major
          Found in configure.py - About 50 mins to fix

            Function prompt_loop_or_load_from_env has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
            Open

            def prompt_loop_or_load_from_env(environ_cp,
                                             var_name,
                                             var_default,
                                             ask_for_var,
                                             check_success,
            Severity: Minor
            Found in configure.py - About 45 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 ver < 35:
                        print('WARNING: XLA does not support CUDA compute capabilities '
                              'lower than sm_35. Disable XLA when running on older GPUs.')
                  else:
            Severity: Major
            Found in configure.py - About 45 mins to fix

              Avoid deeply nested control flow statements.
              Open

                        if ver < 30:
                          print(
                              'ERROR: TensorFlow only supports small CUDA compute'
                              ' capabilities of sm_30 and higher. Please re-specify the list'
                              ' of compute capabilities excluding version %s.' % ver)
              Severity: Major
              Found in configure.py - About 45 mins to fix

                Avoid deeply nested control flow statements.
                Open

                          if name in environ_cp:
                            write_action_env_to_bazelrc(name, environ_cp[name])
                        break
                Severity: Major
                Found in configure.py - About 45 mins to fix

                  There are no issues that match your filters.

                  Category
                  Status