awslabs / amazon-documentdb-tools
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 12% duplication:
    • 3,659 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 472 duplicated lines
  • 42 duplicates
system12% (472 lines)
Duplication per Extension
py10% (304 lines)
yaml21% (150 lines)
yml12% (18 lines)
Duplication per Component (primary)
cosmos-db-migration-utility/src/cloudformation21% (150 lines)
global-clusters-automation14% (122 lines)
cosmos-db-migration-utility/src/configure19% (27 lines)
cosmos-db-migration-utility/src/lambda/gap-watch-request-reader23% (27 lines)
cosmos-db-migration-utility/src/migrator-app/common46% (27 lines)
compat-tool/compat9% (20 lines)
global-clusters-automation/deploy12% (18 lines)
cosmos-db-migration-utility/src/migrator-app31% (17 lines)
cosmos-db-migration-utility/src/lambda/batch-request-reader7% (17 lines)
cosmos-db-migration-utility/src/configure/common89% (17 lines)
cosmos-db-migration-utility/src/lambda/app-request-reader14% (16 lines)
cosmos-db-migration-utility/src/migrator-app/helpers4% (14 lines)
cosmos-db-migration-utility/src/migrator-app/migrators0% (0 lines)
index-tool/migrationtools0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 42 duplicates...
Size#FoldersFilesLinesCode
25 x 2 global-clusters-automation
global-clusters-automation
add_secondarycluster.py
failover_and_delete_global_cluster.py
125:154 (19%)
112:141 (11%)
view
17 x 2 cosmos-db-migration-utility/src/configure/common
cosmos-db-migration-util...src/migrator-app/common
logger.py
logger.py
4:22 (100%)
4:22 (100%)
view
15 x 2 global-clusters-automation
global-clusters-automation
failover_and_convert_lambda_function.py
failover_and_delete_lambda_function.py
138:157 (14%)
129:148 (12%)
view
12 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
249:260 (2%)
371:382 (2%)
view
12 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
249:260 (2%)
271:282 (2%)
view
12 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
271:282 (2%)
371:382 (2%)
view
12 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
297:308 (2%)
323:334 (2%)
view
11 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
250:260 (2%)
350:360 (2%)
view
11 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
314:324 (2%)
340:350 (2%)
view
11 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
272:282 (2%)
350:360 (2%)
view
11 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
core-resources.yaml
350:360 (2%)
372:382 (2%)
view
11 x 2 cosmos-db-migration-utility/src/configure
cosmos-db-migration-utility/src/migrator-app
main.py
main.py
10:25 (33%)
15:30 (28%)
view
10 x 2 compat-tool/compat
compat-tool/compat
compat.py
compat.py
70:80 (4%)
88:98 (4%)
view
10 x 2 cosmos-db-migration-utility/src/configure
cosmos-db-migration-util...src/migrator-app/common
json_encoder.py
json_encoder.py
7:16 (100%)
7:16 (100%)
view
10 x 2 cosmos-db-migration-util...da/batch-request-reader
cosmos-db-migration-util...ap-watch-request-reader
lambda_function.py
lambda_function.py
37:47 (4%)
42:52 (8%)
view
10 x 2 cosmos-db-migration-util...ap-watch-request-reader
cosmos-db-migration-util...src/migrator-app/common
lambda_function.py
json_encoder.py
23:32 (8%)
7:16 (100%)
view
10 x 2 cosmos-db-migration-utility/src/configure
cosmos-db-migration-util...ap-watch-request-reader
json_encoder.py
lambda_function.py
7:16 (100%)
23:32 (8%)
view
9 x 2 cosmos-db-migration-util...mbda/app-request-reader
cosmos-db-migration-util...ap-watch-request-reader
lambda_function.py
lambda_function.py
14:22 (8%)
44:52 (7%)
view
9 x 2 cosmos-db-migration-utility/src/cloudformation
cosmos-db-migration-utility/src/cloudformation
core-resources.yaml
documentdb.yaml
19:27 (1%)
65:73 (5%)
view
9 x 2 cosmos-db-migration-util...mbda/app-request-reader
cosmos-db-migration-util...da/batch-request-reader
lambda_function.py
lambda_function.py
14:22 (8%)
39:47 (3%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
14 x 2 global-clusters-automation
global-clusters-automation
failover_and_delete_global_cluster.py
add_secondarycluster.py
0:0 
0:0 
view
8 x 3 cosmos-db-migration-utility/src/configure
cosmos-db-migration-util...ap-watch-request-reader
cosmos-db-migration-util...src/migrator-app/common
json_encoder.py
lambda_function.py
json_encoder.py
0:0 
0:0 
0:0 
view
8 x 2 cosmos-db-migration-utility/src/configure/common
cosmos-db-migration-util...src/migrator-app/common
logger.py
logger.py
0:0 
0:0 
view
8 x 3 cosmos-db-migration-util...da/batch-request-reader
cosmos-db-migration-util...mbda/app-request-reader
cosmos-db-migration-util...ap-watch-request-reader
lambda_function.py
lambda_function.py
lambda_function.py
0:0 
0:0 
0:0 
view
8 x 2 cosmos-db-migration-utility/src/configure/common
cosmos-db-migration-util...src/migrator-app/common
logger.py
logger.py
0:0 
0:0 
view