facebookresearch / salina
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
  • 51% duplication:
    • 11,319 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,871 duplicated lines
  • 572 duplicates
system51% (5,871 lines)
Duplication per Extension
py48% (4,461 lines)
yaml68% (1,410 lines)
Duplication per Component (primary)
salina_examples/rl68% (3,242 lines)
salina_examples/offline_rl65% (975 lines)
salina_cl/algorithms49% (675 lines)
salina_examples/computer_vision73% (407 lines)
salina/agents21% (251 lines)
salina_cl/experiments60% (98 lines)
salina7% (70 lines)
salina_examples100% (63 lines)
salina_cl/scenarios7% (46 lines)
salina/rl25% (44 lines)
ROOT0% (0 lines)
salina_cl0% (0 lines)
_build/html0% (0 lines)

Duplication Between Components (50+ lines)

G salina_examples/offline_rl salina_examples/offline_rl salina_examples/rl salina_examples/rl salina_examples/offline_rl--salina_examples/rl 435 salina_cl/algorithms salina_cl/algorithms salina_cl/algorithms--salina_examples/rl 364 salina_cl/experiments salina_cl/experiments salina_cl/algorithms--salina_cl/experiments 179 salina_examples salina_examples salina_cl/algorithms--salina_examples 126 salina/rl salina/rl salina/rl--salina_examples/rl 144

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 572 duplicates...
Size#FoldersFilesLinesCode
169 x 2 salina_examples/rl/td3
salina_examples/rl/td3
td3.py
td3_with_brax.py
59:251 (80%)
52:244 (82%)
view
75 x 2 salina_examples/computer_vision/mnist
salina_examples/computer_vision/mnist
mnist_dataloader_torch_agent.py
mnist_spatial_transformer_network.py
75:151 (48%)
123:199 (38%)
view
67 x 2 salina_examples/rl/a2c/complete
salina_examples/rl/a2c/complete_with_async_eval
a2c.py
main.py
75:168 (63%)
123:207 (45%)
view
66 x 2 salina_examples/rl/a2c/gpu
salina_examples/rl/a2c/multi_cpus
main.py
main.py
44:125 (48%)
37:121 (50%)
view
63 x 2 salina_cl/algorithms
salina_examples
tools.py
__init__.py
21:88 (79%)
9:76 (100%)
view
62 x 2 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/bc_on_full_episodes
bc.py
bc_with_torch_amp.py
29:97 (63%)
29:97 (62%)
view
51 x 2 salina_examples/rl/ppo_continuous
salina_examples/rl/ppo_discrete
ppo.py
ppo.py
27:87 (37%)
27:87 (36%)
view
42 x 2 salina_cl/algorithms/ppo_finetune/yaml
salina_cl/algorithms/ppo_fromscratch/yaml
cartpole.yaml
cartpole.yaml
18:69 (75%)
18:69 (75%)
view
40 x 2 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/decision_transformer
bc.py
dt.py
91:140 (40%)
155:207 (26%)
view
40 x 2 salina_examples/rl/td3/benchmark
salina_examples/rl/td3
mujoco.yaml
mujoco.yaml
6:52 (53%)
6:52 (67%)
view
37 x 2 salina_examples/offline_rl/decision_transformer
salina_examples/offline_rl/decision_transformer
gym_transformers.yaml
gym_xformers.yaml
19:57 (71%)
19:57 (71%)
view
37 x 2 salina_examples/rl/ppo_brax
salina_examples/rl/ppo_brax_transformer
halfcheetah.yaml
halfcheetah.yaml
25:66 (66%)
52:93 (45%)
view
37 x 2 salina/rl
salina_examples/rl/reinforce/mono_cpu
functional.py
main.py
82:133 (38%)
137:189 (29%)
view
37 x 2 salina_examples/rl/ppo_brax
salina_examples/rl/ppo_brax_transformer
ppo.py
ppo.py
213:250 (18%)
195:232 (19%)
view
36 x 2 salina_examples/rl/a2c/mono_cpu_2
salina_examples/rl/a2c/multi_cpus
main.py
main.py
40:88 (31%)
40:88 (27%)
view
36 x 2 salina_examples/rl/a2c/gpu
salina_examples/rl/a2c/multi_cpus
main.py
main.py
153:202 (26%)
151:200 (27%)
view
36 x 2 salina_cl/experiments
salina_cl/experiments
ppo_finetune.yaml
ppo_fromscratch.yaml
15:59 (73%)
18:62 (72%)
view
36 x 2 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/bc_on_full_episodes
bc.py
bc_with_torch_amp.py
98:144 (36%)
99:146 (36%)
view
36 x 2 salina_examples/rl/ddpg/benchmark
salina_examples/rl/td3/benchmark
mujoco.yaml
mujoco.yaml
1:42 (50%)
1:42 (48%)
view
36 x 2 salina_examples/rl/a2c/gpu
salina_examples/rl/a2c/mono_cpu_2
main.py
main.py
47:94 (26%)
40:88 (31%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 25 unit duplicates...
Size#FoldersFilesLinesCode
67 x 2 salina_examples
salina_cl/algorithms
__init__.py
tools.py
0:0 
0:0 
view
21 x 3 salina_examples/computer_vision/mnist
salina_examples/computer_vision/mnist
salina_examples/computer_vision/sequential_mnist
mnist_dataloader_torch_agent.py
mnist_spatial_transformer_network.py
sequential_mnist_dataloader_torch_age...
0:0 
0:0 
0:0 
view
17 x 3 salina_examples/offline_rl/bc
salina_examples/rl/dqn
salina_examples/rl/a2c/complete
agents.py
agents.py
agents.py
0:0 
0:0 
0:0 
view
12 x 2 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/decision_transformer
agents.py
agents.py
0:0 
0:0 
view
11 x 2 salina_examples/rl/ppo_brax
salina_examples/rl/ppo_brax_transformer
ppo.py
ppo.py
0:0 
0:0 
view
11 x 2 salina_examples/rl/reinforce/mono_cpu
salina_examples/rl/a2c/mono_cpu
main.py
main.py
0:0 
0:0 
view
9 x 4 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/bc
salina_examples/rl/ddpg
salina_examples/rl/td3
agents.py
agents.py
agents.py
agents.py
0:0 
0:0 
0:0 
0:0 
view
9 x 2 salina_examples/rl/ppo_brax
salina_examples/rl/ppo_brax_transformer
ppo.py
ppo.py
0:0 
0:0 
view
9 x 2 salina_examples/rl/ddpg
salina_examples/rl/td3
agents.py
agents.py
0:0 
0:0 
view
9 x 2 salina_cl/algorithms/sac_finetune
salina_cl/algorithms/td3_finetune
agents.py
agents.py
0:0 
0:0 
view
7 x 2 salina/agents
salina/agents
transformers.py
xformers_transformers.py
0:0 
0:0 
view
7 x 2 salina/agents
salina/agents
gyma.py
gyma.py
0:0 
0:0 
view
7 x 3 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/decision_transformer
bc.py
bc_with_torch_amp.py
dt.py
0:0 
0:0 
0:0 
view
7 x 2 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/rl/ppo_brax_transformer
agents.py
agents.py
0:0 
0:0 
view
7 x 2 salina_examples/rl/ppo_discrete
salina_examples/rl/ppo_continuous
ppo.py
ppo.py
0:0 
0:0 
view
7 x 2 salina_examples/rl/ppo_brax
salina_examples/rl/ppo_brax_transformer
ppo.py
ppo.py
0:0 
0:0 
view
7 x 2 salina_examples/rl/ddpg
salina_examples/rl/td3
agents.py
agents.py
0:0 
0:0 
view
7 x 2 salina_examples/rl/dqn
salina_examples/rl/a2c/complete
agents.py
agents.py
0:0 
0:0 
view
6 x 3 salina_examples/offline_rl/bc_on_full_episodes
salina_examples/offline_rl/decision_transformer
salina_examples/rl/ppo_brax_transformer
agents.py
agents.py
agents.py
0:0 
0:0 
0:0 
view
7 x 9 salina_examples/rl/ppo_discrete
salina_examples/rl/reinforce/mono_cpu
salina_examples/rl/ppo_continuous
salina_examples/rl/a2c/mono_cpu
salina_examples/rl/a2c/gpu
salina_examples/rl/a2c/complete
salina_examples/rl/a2c/complete_with_async_eval
salina_examples/rl/a2c/mono_cpu_2
salina_examples/rl/a2c/multi_cpus
ppo.py
main.py
ppo.py
main.py
main.py
a2c.py
main.py
main.py
main.py
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
view