aws / aws-sam-cli
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
  • 10% duplication:
    • 24,175 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,443 duplicated lines
  • 317 duplicates
system10% (2,443 lines)
Duplication per Extension
py7% (1,594 lines)
yml63% (528 lines)
yaml43% (263 lines)
java100% (58 lines)
Duplication per Component (primary)
ROOT49% (528 lines)
samcli/commands/local24% (348 lines)
samcli/lib/init54% (265 lines)
samcli/lib/sync12% (185 lines)
samcli/commands/deploy11% (134 lines)
samcli/commands/init12% (102 lines)
samcli/lib/providers5% (99 lines)
samcli/lib/iac9% (79 lines)
samcli/local/docker8% (72 lines)
samcli/commands/package18% (67 lines)
samcli/lib/observability10% (64 lines)
samcli/lib/pipeline10% (62 lines)
samcli/lib/build3% (53 lines)
samcli/local/apigw9% (50 lines)
samcli/commands/sync15% (44 lines)
samcli/lib/package3% (43 lines)
samcli/lib/bootstrap6% (39 lines)
samcli/lib/utils2% (38 lines)
samcli/lib/deploy6% (28 lines)
samcli/commands/logs9% (26 lines)
samcli/commands/pipeline3% (24 lines)
samcli/cli2% (18 lines)
samcli/local/lambdafn4% (16 lines)
samcli/lib/warnings22% (14 lines)
samcli/commands/_utils1% (12 lines)
samcli/local/events4% (12 lines)
samcli/commands/publish11% (8 lines)
samcli/commands/traces8% (7 lines)
samcli/commands/validate4% (6 lines)
samcli/local0% (0 lines)
samcli/local/lambda_service0% (0 lines)
samcli/local/common0% (0 lines)
samcli/local/services0% (0 lines)
samcli/local/layers0% (0 lines)
samcli/lib0% (0 lines)
samcli/lib/config0% (0 lines)
samcli/lib/delete0% (0 lines)
samcli/lib/cookiecutter0% (0 lines)
samcli/lib/telemetry0% (0 lines)
samcli/lib/schemas0% (0 lines)
samcli/lib/intrinsic_resolver0% (0 lines)
samcli/lib/samlib0% (0 lines)
samcli/lib/cli_validation0% (0 lines)
samcli/lib/generated_sample_events0% (0 lines)
samcli/lib/docker0% (0 lines)
samcli0% (0 lines)
samcli/settings0% (0 lines)
samcli/commands/build0% (0 lines)
samcli/commands0% (0 lines)
samcli/commands/delete0% (0 lines)
samcli/commands/bootstrap0% (0 lines)
installer0% (0 lines)
installer/pyinstaller0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 317 duplicates...
Size#FoldersFilesLinesCode
47 x 2 ROOT
ROOT
appveyor-ubuntu.yml
appveyor.yml
12:63 (29%)
6:57 (29%)
view
40 x 2 ROOT
ROOT
appveyor-ubuntu.yml
appveyor.yml
65:120 (25%)
128:183 (25%)
view
39 x 2 samcli/lib/init/template...iecutter.project_name}}
samcli/lib/init/template...iecutter.project_name}}
template.yaml
template.yaml
1:47 (100%)
1:47 (100%)
view
35 x 2 samcli/lib/init/template...iecutter.project_name}}
samcli/lib/init/template...iecutter.project_name}}
template.yaml
template.yaml
1:43 (100%)
1:43 (100%)
view
34 x 2 ROOT
ROOT
appveyor-windows-build-nodejs.yml
appveyor-windows-build-ruby.yml
1:55 (79%)
1:55 (69%)
view
26 x 2 samcli/commands/local/start_api
samcli/commands/local/start_lambda
cli.py
cli.py
161:190 (17%)
169:198 (19%)
view
26 x 2 samcli/commands/local/start_api
samcli/commands/local/start_lambda
cli.py
cli.py
67:97 (17%)
78:108 (19%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-nodejs.yml
appveyor-windows-build-python.yml
1:37 (55%)
1:37 (43%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-go.yml
appveyor-windows-build-nodejs.yml
1:36 (50%)
1:37 (55%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-go.yml
appveyor-windows-build-python.yml
1:36 (50%)
1:37 (43%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-python.yml
appveyor-windows-build-ruby.yml
1:37 (43%)
1:37 (48%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-go.yml
appveyor-windows-build-ruby.yml
1:36 (50%)
1:37 (48%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-dotnet.yml
appveyor-windows-build-python.yml
1:37 (57%)
1:37 (43%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-dotnet.yml
appveyor-windows-build-nodejs.yml
1:37 (57%)
1:37 (55%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-dotnet.yml
appveyor-windows-build-ruby.yml
1:37 (57%)
1:37 (48%)
view
24 x 2 samcli/commands/local/start_api
samcli/commands/local/start_lambda
cli.py
cli.py
99:124 (16%)
109:134 (17%)
view
24 x 2 ROOT
ROOT
appveyor-windows-build-dotnet.yml
appveyor-windows-build-go.yml
1:37 (57%)
1:36 (50%)
view
21 x 2 samcli/lib/init/template...iecutter.project_name}}
samcli/lib/init/template...iecutter.project_name}}
template.yaml
template.yaml
19:43 (60%)
19:43 (60%)
view
21 x 2 samcli/lib/init/template...iecutter.project_name}}
samcli/lib/init/template...iecutter.project_name}}
template.yaml
template.yaml
19:43 (60%)
19:43 (60%)
view
20 x 2 ROOT
ROOT
appveyor-windows-build-java-container...
appveyor-windows-build-ruby.yml
1:30 (40%)
1:30 (40%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
13 x 2 samcli/lib/package
samcli/lib/package
packageable_resources.py
packageable_resources.py
0:0 
0:0 
view
11 x 2 samcli/lib/init/template...rc/main/java/helloworld
samcli/lib/init/template...rc/main/java/helloworld
App.java
App.java
19:30 
19:30 
view
6 x 2 samcli/lib/sync/flows
samcli/lib/sync/flows
function_sync_flow.py
zip_function_sync_flow.py
0:0 
0:0 
view
6 x 2 samcli/lib/sync/flows
samcli/lib/sync/flows
http_api_sync_flow.py
rest_api_sync_flow.py
0:0 
0:0 
view
7 x 2 samcli/lib/sync
samcli/lib/sync
exceptions.py
exceptions.py
0:0 
0:0 
view