facebookresearch / rlstructures
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
  • 66% duplication:
    • 9,957 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 6,627 duplicated lines
  • 1,307 duplicates
system66% (6,627 lines)
Duplication per Extension
py66% (6,627 lines)
Duplication per Component (primary)
tutorial/deprecated90% (2,328 lines)
rlalgos/deprecated77% (1,226 lines)
rlalgos/sac85% (481 lines)
rlalgos/dqn63% (402 lines)
rlalgos/simple_ddqn88% (336 lines)
rlalgos/a2c_gae58% (292 lines)
rlstructures/deprecated39% (282 lines)
rlalgos/reinforce90% (262 lines)
rlalgos/reinforce_diayn66% (236 lines)
rlalgos/reinforce_device80% (205 lines)
rlalgos/ppo79% (192 lines)
rlstructures/rl_batchers31% (191 lines)
rlstructures/env_wrappers54% (149 lines)
tutorial18% (45 lines)
sphinx_docs/source0% (0 lines)
ROOT0% (0 lines)
rlstructures0% (0 lines)
rlalgos0% (0 lines)

Duplication Between Components (50+ lines)

G rlalgos/reinforce rlalgos/reinforce tutorial/deprecated tutorial/deprecated rlalgos/reinforce--tutorial/deprecated 904 rlalgos/sac rlalgos/sac rlalgos/reinforce--rlalgos/sac 102 rlalgos/reinforce_diayn rlalgos/reinforce_diayn rlalgos/reinforce--rlalgos/reinforce_diayn 391 rlalgos/reinforce_device rlalgos/reinforce_device rlalgos/reinforce--rlalgos/reinforce_device 396 rlalgos/deprecated rlalgos/deprecated rlalgos/deprecated--tutorial/deprecated 250 rlalgos/deprecated--rlalgos/sac 828 rlalgos/ppo rlalgos/ppo rlalgos/deprecated--rlalgos/ppo 97 rlalgos/dqn rlalgos/dqn rlalgos/deprecated--rlalgos/dqn 547 rlalgos/simple_ddqn rlalgos/simple_ddqn rlalgos/deprecated--rlalgos/simple_ddqn 560 rlalgos/sac--tutorial/deprecated 353 rlalgos/sac--rlalgos/simple_ddqn 120 rlalgos/a2c_gae rlalgos/a2c_gae rlalgos/a2c_gae--rlalgos/reinforce 178 rlalgos/a2c_gae--tutorial/deprecated 796 rlalgos/a2c_gae--rlalgos/deprecated 51 rlalgos/a2c_gae--rlalgos/sac 166 rlalgos/a2c_gae--rlalgos/reinforce_diayn 142 rlalgos/a2c_gae--rlalgos/ppo 312 rlalgos/a2c_gae--rlalgos/dqn 122 rlalgos/a2c_gae--rlalgos/simple_ddqn 54 rlalgos/a2c_gae--rlalgos/reinforce_device 126 rlalgos/reinforce_diayn--tutorial/deprecated 740 rlalgos/reinforce_diayn--rlalgos/sac 50 rlalgos/ppo--rlalgos/reinforce 184 rlalgos/ppo--tutorial/deprecated 732 rlalgos/ppo--rlalgos/sac 196 rlalgos/ppo--rlalgos/reinforce_diayn 120 rlalgos/ppo--rlalgos/simple_ddqn 52 rlalgos/ppo--rlalgos/reinforce_device 116 rlalgos/dqn--rlalgos/reinforce 54 rlalgos/dqn--rlalgos/sac 88 rlalgos/dqn--rlalgos/ppo 52 rlalgos/dqn--rlalgos/simple_ddqn 658 rlalgos/reinforce_device--tutorial/deprecated 506 rlalgos/reinforce_device--rlalgos/sac 74 rlalgos/reinforce_device--rlalgos/reinforce_diayn 288 rlstructures/deprecated rlstructures/deprecated rlstructures/rl_batchers rlstructures/rl_batchers rlstructures/deprecated--rlstructures/rl_batchers 315

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,307 duplicates...
Size#FoldersFilesLinesCode
136 x 2 rlalgos/deprecated/envs
rlalgos/sac
continuouscartopole.py
continuouscartopole.py
22:189 (100%)
22:189 (100%)
view
133 x 2 tutorial/deprecated/tutorial_recurrent_a2c_gae_s
tutorial/deprecated/tutorial_recurrent_a2c_s
a2c.py
a2c.py
24:212 (77%)
25:213 (85%)
view
116 x 2 tutorial/deprecated/tutorial_a2c_with_infinite_env
tutorial/deprecated/tutorial_recurrent_policy
a2c.py
a2c.py
23:185 (72%)
24:186 (65%)
view
96 x 2 rlalgos/dqn
rlalgos/simple_ddqn
duelling_dqn.py
ddqn.py
223:333 (25%)
88:198 (35%)
view
92 x 2 tutorial/deprecated/tutorial_a2c_with_infinite_env
tutorial/deprecated/tutorial_from_reinforce_to_a2c
a2c.py
a2c.py
117:244 (57%)
127:253 (54%)
view
67 x 2 rlalgos/deprecated/sac
rlalgos/sac
agent.py
agent.py
81:174 (66%)
67:160 (74%)
view
65 x 2 tutorial/deprecated
tutorial/deprecated
deprecated_tutorial_multiprocess_epis...
deprecated_tutorial_multiprocess_traj...
26:125 (79%)
23:120 (76%)
view
58 x 2 rlalgos/dqn
rlalgos/simple_ddqn
duelling_dqn.py
ddqn.py
485:556 (15%)
266:337 (21%)
view
52 x 2 rlalgos/deprecated/sac
rlalgos/simple_ddqn
sac.py
ddqn.py
26:90 (18%)
25:85 (19%)
view
52 x 2 rlalgos/deprecated/dqn
rlalgos/simple_ddqn
duelling_dqn.py
ddqn.py
39:103 (21%)
25:85 (19%)
view
52 x 2 rlalgos/deprecated/dqn
rlalgos/deprecated/sac
duelling_dqn.py
sac.py
39:103 (21%)
26:90 (18%)
view
50 x 2 tutorial/deprecated/tutorial_reinforce_s
tutorial/deprecated/tuto...force_with_evaluation_s
agent.py
agent.py
18:94 (98%)
17:93 (98%)
view
47 x 2 tutorial/deprecated/tutorial_from_reinforce_to_a2c
tutorial/deprecated/tutorial_recurrent_policy
a2c.py
a2c.py
127:194 (27%)
118:186 (26%)
view
47 x 2 tutorial/deprecated/tutorial_reinforce
tutorial/deprecated/tuto...inforce_with_evaluation
reinforce.py
reinforce.py
125:194 (39%)
178:247 (28%)
view
45 x 2 tutorial/deprecated/tuto...from_reinforce_to_a2c_s
tutorial/deprecated/tutorial_recurrent_a2c_s
a2c.py
a2c.py
156:219 (27%)
160:223 (29%)
view
45 x 2 rlalgos/deprecated/dqn
rlalgos/deprecated/ppo
duelling_dqn.py
discrete_ppo.py
133:181 (18%)
54:102 (20%)
view
39 x 2 rlalgos/a2c_gae
tutorial/deprecated/tutorial_recurrent_a2c_gae_s
a2c.py
a2c.py
215:260 (20%)
212:259 (22%)
view
39 x 2 rlalgos/ppo
tutorial/deprecated/tutorial_recurrent_a2c_gae_s
discrete_ppo.py
a2c.py
203:248 (21%)
212:259 (22%)
view
39 x 2 rlalgos/a2c_gae
rlalgos/ppo
a2c.py
discrete_ppo.py
215:260 (20%)
203:248 (21%)
view
37 x 2 tutorial/deprecated/tuto...from_reinforce_to_a2c_s
tutorial/deprecated/tutorial_recurrent_a2c_gae_s
a2c.py
a2c.py
156:209 (22%)
159:212 (21%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 40 unit duplicates...
Size#FoldersFilesLinesCode
136 x 2 tutorial/deprecated/tutorial_recurrent_a2c_s
tutorial/deprecated/tutorial_recurrent_a2c_gae_s
a2c.py
a2c.py
0:0 
0:0 
view
113 x 2 tutorial/deprecated/tutorial_a2c_with_infinite_env
tutorial/deprecated/tutorial_recurrent_policy
a2c.py
a2c.py
0:0 
0:0 
view
64 x 2 tutorial/deprecated/tutorial_a2c_with_infinite_env
tutorial/deprecated/tutorial_from_reinforce_to_a2c
a2c.py
a2c.py
0:0 
0:0 
view
45 x 2 rlalgos/sac
rlalgos/deprecated/envs
continuouscartopole.py
continuouscartopole.py
0:0 
0:0 
view
57 x 2 tutorial/deprecated/tuto...inforce_with_evaluation
tutorial/deprecated/tutorial_reinforce
reinforce.py
reinforce.py
0:0 
0:0 
view
37 x 2 rlalgos/simple_ddqn
rlalgos/dqn
ddqn.py
duelling_dqn.py
0:0 
0:0 
view
39 x 2 rlalgos/sac
rlalgos/deprecated/envs
continuouscartopole.py
continuouscartopole.py
0:0 
0:0 
view
31 x 2 rlalgos/sac
rlalgos/deprecated/envs
continuouscartopole.py
continuouscartopole.py
0:0 
0:0 
view
26 x 2 tutorial/deprecated
tutorial/deprecated
deprecated_tutorial_multiprocess_traj...
deprecated_tutorial_multiprocess_epis...
0:0 
0:0 
view
20 x 4 rlalgos/sac
rlalgos/simple_ddqn
rlalgos/deprecated/sac
rlalgos/deprecated/dqn
sac.py
ddqn.py
sac.py
duelling_dqn.py
0:0 
0:0 
0:0 
0:0 
view
19 x 3 rlalgos/deprecated/sac
rlalgos/deprecated/ppo
rlalgos/deprecated/a2c
sac.py
discrete_ppo.py
a2c_episodes.py
0:0 
0:0 
0:0 
view
25 x 2 tutorial/deprecated/tuto...force_with_evaluation_s
tutorial/deprecated/tutorial_reinforce_s
agent.py
agent.py
0:0 
0:0 
view
16 x 2 rlalgos/sac
rlalgos/deprecated/envs
continuouscartopole.py
continuouscartopole.py
0:0 
0:0 
view
14 x 2 rlalgos/simple_ddqn
rlalgos/dqn
agent.py
agent.py
0:0 
0:0 
view
13 x 2 rlalgos/a2c_gae
rlalgos/ppo
a2c.py
discrete_ppo.py
0:0 
0:0 
view
12 x 2 tutorial/deprecated
tutorial/deprecated
deprecated_tutorial_multiprocess_traj...
deprecated_tutorial_multiprocess_epis...
0:0 
0:0 
view
13 x 5 tutorial/deprecated/tutorial_a2c_with_infinite_env
tutorial/deprecated/tutorial_recurrent_a2c_s
tutorial/deprecated/tutorial_recurrent_policy
tutorial/deprecated/tutorial_recurrent_a2c_gae_s
rlalgos/ppo
a2c.py
a2c.py
a2c.py
a2c.py
discrete_ppo.py
0:0 
0:0 
0:0 
0:0 
0:0 
view
12 x 6 tutorial/deprecated/tuto...inforce_with_evaluation
tutorial/deprecated/tutorial_reinforce
tutorial/deprecated/tuto...from_reinforce_to_a2c_s
tutorial/deprecated/tuto...force_with_evaluation_s
tutorial/deprecated/tutorial_reinforce_s
tutorial/deprecated/tutorial_from_reinforce_to_a2c
reinforce.py
reinforce.py
a2c.py
reinforce.py
reinforce.py
a2c.py
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
view
10 x 3 rlalgos/deprecated/sac
rlalgos/deprecated/ppo
rlalgos/deprecated/a2c
sac.py
discrete_ppo.py
a2c_episodes.py
0:0 
0:0 
0:0 
view
9 x 2 rlstructures/deprecated/batchers
rlstructures/deprecated/batchers
trajectorybatchers.py
episodebatchers.py
0:0 
0:0 
view