aws-quickstart / quickstart-aem-opencloud
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
  • 54% duplication:
    • 69,605 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 37,969 duplicated lines
  • 3,471 duplicates
system54% (37,969 lines)
Duplication per Extension
py56% (34,171 lines)
yaml42% (3,728 lines)
h13% (70 lines)
Duplication per Component (primary)
functions/source/syncEditStackFacts99% (10,146 lines)
functions/source/syncEditStackConfig99% (10,146 lines)
functions/source/syncEditPackerConfig98% (10,142 lines)
functions/source/generateAemSslCertificate12% (3,807 lines)
templates/full-set48% (1,957 lines)
templates33% (1,087 lines)
templates/amis63% (606 lines)
scripts16% (78 lines)
templates/cdn0% (0 lines)
functions/source/ACMCert0% (0 lines)

Duplication Between Components (50+ lines)

G functions/source/syncEditStackConfig functions/source/syncEditStackConfig functions/source/syncEditStackFacts functions/source/syncEditStackFacts functions/source/syncEditStackConfig--functions/source/syncEditStackFacts 20292 functions/source/syncEditPackerConfig functions/source/syncEditPackerConfig functions/source/syncEditPackerConfig--functions/source/syncEditStackConfig 20262 functions/source/syncEditPackerConfig--functions/source/syncEditStackFacts 20262 functions/source/generateAemSslCertificate functions/source/generateAemSslCertificate functions/source/generateAemSslCertificate--functions/source/syncEditStackConfig 682 functions/source/generateAemSslCertificate--functions/source/syncEditStackFacts 682 functions/source/generateAemSslCertificate--functions/source/syncEditPackerConfig 711 templates/amis templates/amis templates templates templates/amis--templates 286 templates/full-set templates/full-set templates/amis--templates/full-set 84 templates--templates/full-set 187

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 3,471 duplicates...
Size#FoldersFilesLinesCode
1429 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
constructor.py
constructor.py
15:1805 (100%)
15:1805 (100%)
view
1429 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
constructor.py
constructor.py
15:1805 (100%)
15:1805 (100%)
view
1429 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
constructor.py
constructor.py
15:1805 (100%)
15:1805 (100%)
view
1353 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
emitter.py
emitter.py
19:1689 (100%)
19:1689 (100%)
view
1353 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
emitter.py
emitter.py
19:1689 (100%)
19:1689 (100%)
view
1353 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
emitter.py
emitter.py
19:1689 (100%)
19:1689 (100%)
view
1292 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
scanner.py
scanner.py
37:1973 (100%)
37:1973 (100%)
view
1292 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
scanner.py
scanner.py
37:1973 (100%)
37:1973 (100%)
view
1292 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
scanner.py
scanner.py
37:1973 (100%)
37:1973 (100%)
view
1039 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
main.py
main.py
24:1534 (100%)
24:1534 (100%)
view
1039 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
main.py
main.py
24:1534 (100%)
24:1534 (100%)
view
1039 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
main.py
main.py
24:1534 (100%)
24:1534 (100%)
view
942 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
representer.py
representer.py
12:1283 (100%)
12:1283 (100%)
view
942 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
representer.py
representer.py
12:1283 (100%)
12:1283 (100%)
view
942 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
representer.py
representer.py
12:1283 (100%)
12:1283 (100%)
view
715 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
comments.py
comments.py
20:1149 (100%)
20:1149 (100%)
view
715 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
comments.py
comments.py
20:1149 (100%)
20:1149 (100%)
view
715 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
comments.py
comments.py
20:1149 (100%)
20:1149 (100%)
view
537 x 2 functions/source/syncEditPackerConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
parser.py
parser.py
85:802 (100%)
85:802 (100%)
view
537 x 2 functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditStackFacts/ruamel/yaml
parser.py
parser.py
85:802 (100%)
85:802 (100%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 451 unit duplicates...
Size#FoldersFilesLinesCode
150 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
parser.py
parser.py
parser.py
0:0 
0:0 
0:0 
view
156 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
89 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
constructor.py
constructor.py
constructor.py
0:0 
0:0 
0:0 
view
82 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
constructor.py
constructor.py
constructor.py
0:0 
0:0 
0:0 
view
81 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
main.py
main.py
main.py
0:0 
0:0 
0:0 
view
80 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
serializer.py
serializer.py
serializer.py
0:0 
0:0 
0:0 
view
76 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
representer.py
representer.py
representer.py
0:0 
0:0 
0:0 
view
100 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
scanner.py
scanner.py
scanner.py
0:0 
0:0 
0:0 
view
74 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
constructor.py
constructor.py
constructor.py
0:0 
0:0 
0:0 
view
76 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
representer.py
representer.py
representer.py
0:0 
0:0 
0:0 
view
68 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
67 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
64 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
63 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
74 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
scanner.py
scanner.py
scanner.py
0:0 
0:0 
0:0 
view
58 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
constructor.py
constructor.py
constructor.py
0:0 
0:0 
0:0 
view
60 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
emitter.py
emitter.py
emitter.py
0:0 
0:0 
0:0 
view
83 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
scanner.py
scanner.py
scanner.py
0:0 
0:0 
0:0 
view
58 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
representer.py
representer.py
representer.py
0:0 
0:0 
0:0 
view
52 x 3 functions/source/syncEditStackFacts/ruamel/yaml
functions/source/syncEditStackConfig/ruamel/yaml
functions/source/syncEditPackerConfig/ruamel/yaml
scanner.py
scanner.py
scanner.py
0:0 
0:0 
0:0 
view