aws / aws-encryption-sdk-cli
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 84 units with 952 lines of code in units (50.4% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 6 medium complex units (166 lines of code)
    • 7 simple units (137 lines of code)
    • 71 very simple units (649 lines of code)
0% | 0% | 17% | 14% | 68%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
py0% | 0% | 17% | 14% | 68%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/aws_encryption_sdk_cli0% | 0% | 17% | 14% | 67%
doc0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
api_compatibility_tests0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
def _process_discovery_args()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
31 17 1
def _process_kms_key_config()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
17 15 2
def process_single_file()
in src/aws_encryption_sdk_cli/internal/io_handling.py
26 12 4
def _catch_bad_metadata_file_requests()
in src/aws_encryption_sdk_cli/__init__.py
20 11 3
def process_cli_request()
in src/aws_encryption_sdk_cli/__init__.py
53 11 2
def stream_kwargs_from_args()
in src/aws_encryption_sdk_cli/__init__.py
19 11 2
def _should_write_file()
in src/aws_encryption_sdk_cli/internal/io_handling.py
20 9 2
def _load_master_key_provider()
in src/aws_encryption_sdk_cli/internal/master_key_parsing.py
30 8 1
def _single_io_write()
in src/aws_encryption_sdk_cli/internal/io_handling.py
43 7 4
def _catch_bad_stdin_stdout_requests()
in src/aws_encryption_sdk_cli/__init__.py
6 6 2
def _catch_bad_file_and_directory_requests()
in src/aws_encryption_sdk_cli/__init__.py
9 6 2
def add_argument()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
4 6 3
def parse_args()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
25 6 1
def _build_parser()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
162 5 0
def _parse_kwargs()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
14 5 1
def _process_caching_config()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
12 5 1
def _process_non_kms_key_config()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
6 5 1
def discovery_pseudobool()
in src/aws_encryption_sdk_cli/internal/arg_parsing.py
9 5 1
def __call__()
in src/aws_encryption_sdk_cli/internal/metadata.py
15 5 2
def close()
in src/aws_encryption_sdk_cli/internal/metadata.py
7 5 1