aws-samples / aws-glue-samples
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 243 units with 2,318 lines of code in units (54.3% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 0 medium complex units (0 lines of code)
    • 7 simple units (195 lines of code)
    • 236 very simple units (2,123 lines of code)
0% | 0% | 0% | 8% | 91%
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% | 0% | 10% | 89%
scala0% | 0% | 0% | 9% | 90%
java0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
utilities/Hive_metastore_migration/src0% | 0% | 0% | 11% | 88%
GlueCustomConnectors/development/Spark0% | 0% | 0% | 12% | 87%
utilities/Crawler_undo_redo/src0% | 0% | 0% | 0% | 100%
GlueCustomConnectors/gluescripts/withoutConnection0% | 0% | 0% | 0% | 100%
GlueCustomConnectors/gluescripts/withConnection0% | 0% | 0% | 0% | 100%
GlueCustomConnectors/development/Athena0% | 0% | 0% | 0% | 100%
GlueCustomConnectors/localValidation0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
def main()
in utilities/Hive_metastore_migration/src/import_into_datacatalog.py
52 9 0
override def planInputPartitions()
in GlueCustomConnectors/development/Spark/glue-3.0/tpcds-custom-connector-for-glue3.0/src/main/scala/com/amazonaws/services/glue/marketplace/connector/tpcds/TPCDSScan.scala
30 7 0
def convertValueType()
in GlueCustomConnectors/development/Spark/glue-3.0/tpcds-custom-connector-for-glue3.0/src/main/scala/com/amazonaws/services/glue/marketplace/connector/tpcds/TPCDSUtils.scala
11 7 2
def convertColumnType()
in GlueCustomConnectors/development/Spark/glue-3.0/tpcds-custom-connector-for-glue3.0/src/main/scala/com/amazonaws/services/glue/marketplace/connector/tpcds/TPCDSUtils.scala
17 7 1
def read_databases_from_catalog()
in utilities/Hive_metastore_migration/src/export_from_datacatalog.py
22 6 5
def main()
in utilities/Hive_metastore_migration/src/export_from_datacatalog.py
53 6 0
def get()
in GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala
10 6 0
def validate_options_in_mode()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
7 5 4
def crawler_undo_options()
in utilities/Crawler_undo_redo/src/crawler_undo.py
32 5 1
override def write()
in GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala
14 5 1
def batch_items_within_partition()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
16 4 5
def modify_column_by_udf()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
5 4 4
def udf_partition_name_from_keys_vals()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
7 4 2
def udf_string_list_str_to_list()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
8 4 1
def get_start_id_for_id_name()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
18 4 2
def transform()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
11 4 5
def validate_aws_regions()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
29 4 1
def main()
in utilities/Hive_metastore_migration/src/hive_metastore_migration.py
15 4 0
def nest_data_frame()
in utilities/Crawler_undo_redo/src/scripts_utils.py
9 4 3
def write_df_to_catalog()
in utilities/Crawler_undo_redo/src/scripts_utils.py
8 4 4