facebook / sapp
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
  • 8% duplication:
    • 20,843 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,770 duplicated lines
  • 400 duplicates
system8% (1,770 lines)
Duplication per Extension
pyi14% (1,292 lines)
py3% (342 lines)
js4% (136 lines)
Duplication per Component (primary)
stubs/sqlalchemy/sql20% (766 lines)
stubs/sqlalchemy/orm13% (305 lines)
sapp/ui6% (182 lines)
sapp/ui/frontend4% (136 lines)
stubs/sqlalchemy/dialects13% (133 lines)
sapp2% (98 lines)
sapp/pipeline2% (62 lines)
stubs/sqlalchemy/engine8% (52 lines)
stubs/sqlalchemy/ext4% (22 lines)
stubs/sqlalchemy/util3% (14 lines)
stubs/pygments0% (0 lines)
stubs/sqlalchemy/connectors0% (0 lines)
stubs/sqlalchemy0% (0 lines)
stubs/sqlalchemy/databases0% (0 lines)
stubs/sqlalchemy/event0% (0 lines)
sapp/extensions0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G stubs/sqlalchemy/dialects stubs/sqlalchemy/dialects stubs/sqlalchemy/engine stubs/sqlalchemy/engine stubs/sqlalchemy/dialects--stubs/sqlalchemy/engine 55

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 400 duplicates...
Size#FoldersFilesLinesCode
30 x 2 stubs/sqlalchemy/orm
stubs/sqlalchemy/orm
63:92 (14%)
100:129 (14%)
view
25 x 2 stubs/sqlalchemy/orm
stubs/sqlalchemy/orm
63:87 (22%)
100:124 (22%)
view
25 x 2 stubs/sqlalchemy/orm
stubs/sqlalchemy/orm
35:59 (22%)
63:87 (22%)
view
25 x 2 stubs/sqlalchemy/orm
stubs/sqlalchemy/orm
35:59 (22%)
100:124 (22%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
161:181 (2%)
361:381 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
140:160 (2%)
207:227 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
295:315 (2%)
489:509 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
206:226 (2%)
404:424 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
140:160 (2%)
274:294 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
273:293 (2%)
468:488 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
183:204 (2%)
382:403 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
162:182 (2%)
296:316 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
184:205 (2%)
251:272 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
250:271 (2%)
446:467 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
228:248 (2%)
425:445 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
207:227 (2%)
274:294 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
139:159 (2%)
340:360 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
162:182 (2%)
229:249 (2%)
view
21 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
229:249 (2%)
296:316 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
162:181 (2%)
490:509 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
251:271 (2%)
383:403 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
184:204 (2%)
447:467 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
207:226 (2%)
341:360 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
229:248 (2%)
362:381 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
383:403 (2%)
447:467 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
162:181 (2%)
426:445 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
207:226 (2%)
469:488 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
229:248 (2%)
490:509 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
341:360 (2%)
469:488 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
184:204 (2%)
318:339 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
318:339 (2%)
383:403 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
140:159 (2%)
405:424 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
362:381 (2%)
490:509 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
341:360 (2%)
405:424 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
140:159 (2%)
469:488 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
274:293 (2%)
405:424 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
296:315 (2%)
362:381 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
296:315 (2%)
426:445 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
405:424 (2%)
469:488 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
251:271 (2%)
318:339 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
362:381 (2%)
426:445 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
318:339 (2%)
447:467 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
274:293 (2%)
341:360 (2%)
view
20 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
426:445 (2%)
490:509 (2%)
view
19 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
150:168 (2%)
172:190 (2%)
view
19 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
284:302 (2%)
306:324 (2%)
view
19 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
217:235 (2%)
239:257 (2%)
view
18 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
317:334 (2%)
510:527 (2%)
view
18 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
415:432 (2%)
436:453 (2%)
view
18 x 2 stubs/sqlalchemy/sql
stubs/sqlalchemy/sql
68:85 (4%)
88:105 (4%)
view
Duplicated Units
The list of top 1 duplicated units.
See data for all 1 unit duplicate
Size#FoldersFilesLinesCode
8 x 2 stubs/sqlalchemy/orm
stubs/sqlalchemy/orm
0:0 
0:0 
view