amazon-research / read-up
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
  • 60% duplication:
    • 11,594 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,974 duplicated lines
  • 1,141 duplicates
system60% (6,974 lines)
Duplication per Extension
py58% (6,232 lines)
yaml85% (742 lines)
Duplication per Component (primary)
solver72% (2,014 lines)
src/model72% (1,561 lines)
src/model/vilbert38% (1,328 lines)
src/data68% (1,272 lines)
config_files85% (742 lines)
src/tools17% (57 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G src/data src/data src/tools src/tools src/data--src/tools 114

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,141 duplicates...
Size#FoldersFilesLinesCode
118 x 2 src/model/vilbert
src/model/vilbert
task_utils.py
task_utils.py
187:312 (16%)
638:763 (16%)
view
112 x 2 src/model
src/model
guesser_vilbert.py
qgen_vilbert.py
68:187 (70%)
340:458 (31%)
view
93 x 2 src/model
src/model
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
35:145 (41%)
34:142 (43%)
view
91 x 2 solver
solver
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
100:211 (45%)
100:211 (45%)
view
85 x 2 src/model
src/model
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
31:130 (44%)
44:143 (40%)
view
85 x 2 solver
solver
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
102:207 (44%)
106:211 (42%)
view
85 x 2 solver
solver
self_play_all_vilbert.py
self_play_qgen_vdst_guesser_vilbert.py
106:211 (42%)
102:207 (44%)
view
84 x 2 src/data
src/data
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
105:231 (57%)
105:224 (56%)
view
84 x 2 src/model
src/model
self_play_all_vilbert.py
self_play_qgen_vdst_guesser_vilbert.py
47:145 (37%)
31:129 (43%)
view
79 x 2 config_files
config_files
self_play_all_vilbert.yaml
self_play_qgen_vdst_oracle_vilbert_gu...
80:159 (52%)
41:120 (71%)
view
79 x 2 solver
solver
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
108:206 (39%)
111:209 (39%)
view
79 x 2 solver
solver
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
104:202 (41%)
111:209 (39%)
view
79 x 2 solver
solver
self_play_qgen_vdst_oracle_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
111:209 (39%)
108:206 (39%)
view
74 x 2 src/model/vilbert
src/model/vilbert
task_utils.py
task_utils.py
45:123 (10%)
249:327 (10%)
view
64 x 2 src/data
src/data
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
13:102 (47%)
13:102 (43%)
view
63 x 2 config_files
config_files
self_play_qgen_vdst_oracle_vilbert.yaml
self_play_qgen_vdst_oracle_vilbert_gu...
16:82 (78%)
16:82 (56%)
view
63 x 2 src/data
src/data
self_play_qgen_vdst_oracle_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
17:104 (45%)
22:109 (42%)
view
61 x 2 solver
solver
self_play_qgen_vdst_oracle_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
20:90 (30%)
20:90 (30%)
view
61 x 2 src/model/vilbert
src/model/vilbert
task_utils.py
task_utils.py
45:108 (8%)
700:763 (8%)
view
59 x 2 src/data
src/data
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
22:102 (43%)
17:96 (42%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 33 unit duplicates...
Size#FoldersFilesLinesCode
86 x 3 src/model
src/model
src/model
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
0:0 
0:0 
0:0 
view
52 x 2 src/model
src/model
guesser_vilbert.py
qgen_vilbert.py
0:0 
0:0 
view
38 x 4 solver
solver
solver
solver
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
0:0 
0:0 
view
29 x 5 solver
solver
solver
solver
solver
self_play_qgen_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst.py
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
0:0 
0:0 
0:0 
view
26 x 2 solver
solver
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
view
34 x 4 src/data
src/data
src/data
src/data
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
0:0 
0:0 
view
28 x 4 solver
solver
solver
solver
self_play_all_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
0:0 
0:0 
view
27 x 2 src/tools
src/data
utils.py
utils.py
0:0 
0:0 
view
26 x 3 solver
solver
solver
self_play_qgen_vilbert.py
self_play.py
self_play_qgen_vdst.py
0:0 
0:0 
0:0 
view
18 x 2 solver
solver
self_play.py
self_play_qgen_vdst.py
0:0 
0:0 
view
16 x 2 solver
solver
qgen.py
qgen_vdst.py
0:0 
0:0 
view
16 x 2 solver
solver
oracle_rcnn.py
oracle.py
0:0 
0:0 
view
11 x 2 src/model/vilbert
src/model/vilbert
vilbert.py
vilbert.py
0:0 
0:0 
view
17 x 2 src/model
src/model
qgen_vdst.py
qgen_vilbert.py
0:0 
0:0 
view
9 x 3 solver
solver
solver
qgen.py
qgen_vdst.py
qgen_vilbert.py
0:0 
0:0 
0:0 
view
10 x 2 solver
solver
oracle_rcnn.py
oracle.py
0:0 
0:0 
view
9 x 3 src/model/vilbert
src/model/vilbert
src/model/vilbert
basebert.py
basebert.py
vilbert.py
0:0 
0:0 
0:0 
view
11 x 3 src/model/vilbert
src/model/vilbert
src/model/vilbert
basebert.py
basebert.py
vilbert.py
0:0 
0:0 
0:0 
view
8 x 6 src/model
src/model
src/model
src/model
src/model
src/model
self_play_all_vilbert.py
self_play_qgen_vilbert.py
self_play_qgen_vdst_oracle_vilbert_gu...
self_play_qgen_vdst_guesser_vilbert.py
self_play_qgen_vdst.py
self_play_qgen_vdst_oracle_vilbert.py
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
view
11 x 2 src/model
src/model
qgen_vdst.py
qgen_vilbert.py
0:0 
0:0 
view