Duplication Overall
- 9% duplication:
- 18,045 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 1,738 duplicated lines
- 258 duplicates
Duplication per Extension
Duplication per Component (primary)
Duplication Between Components (50+ lines)
flowchart TB
n0["OpenAI.Responses"]
n1["OpenAI"]
n0 ---|"471"| n1
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#DC143CFF,stroke-width:10px
Download:
Mermaid (.mmd)
(open online Mermaid editor)
2D force graph
|
3D force graph
Show more details on duplication between components...
From Component
--> To Component
Duplicated
Lines
File Pairs
Details
OpenAI.Responses (10%)
  --> OpenAI (1%)
471
33 file pairs
details...
flowchart TB
n0["OpenAI.Responses"]
n1["OpenAI"]
n0 ---|"471"| n1
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#DC143CFF,stroke-width:10px
Show more details on duplication between components...
| From Component --> To Component |
Duplicated Lines |
File Pairs | Details |
|---|---|---|---|
| OpenAI.Responses (10%)   --> OpenAI (1%) |
471 | 33 file pairs | details... |
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 30 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 69:112 (44%)69:112 (44%) | view | |
| 28 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 60:101 (25%)14:55 (50%) | view | |
| 24 | x 2 | OpenAI.Responses/src/CustomOpenAI/src/Custom | 12:72 (64%)13:73 (64%) | view | |
| 24 | x 2 | OpenAI.Responses/src/CustomOpenAI/src/Custom/Realtime | 12:72 (64%)12:72 (64%) | view | |
| 24 | x 2 | OpenAI/src/CustomOpenAI/src/Custom/Realtime | 13:73 (64%)12:72 (64%) | view | |
| 15 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:33 (75%)14:33 (75%) | view | |
| 15 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:33 (75%)14:33 (75%) | view | |
| 15 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 23:48 (34%)23:48 (34%) | view | |
| 15 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:33 (75%)14:33 (75%) | view | |
| 14 | x 2 | OpenAI/src/Custom/ModerationsOpenAI/src/Custom/Moderations | 19:32 (26%)37:50 (26%) | view | |
| 14 | x 2 | OpenAI/src/Custom/Realtime/GAOpenAI/src/Custom/Realtime/GA | 11:38 (87%)11:38 (87%) | view | |
| 14 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 180:208 (12%)83:110 (25%) | view | |
| 13 | x 2 | OpenAI/src/Custom/FineTuning/InternalOpenAI/src/Custom/FineTuning/Internal/Pagination | 57:78 (33%)75:96 (19%) | view | |
| 13 | x 2 | OpenAI/src/Custom/FineTuning/InternalOpenAI/src/Custom/FineTuning/Internal/Pagination | 57:78 (33%)75:96 (19%) | view | |
| 12 | x 2 | OpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/Tool/McpTool | 73:92 (27%)73:92 (27%) | view | |
| 12 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 97:108 (17%)62:73 (20%) | view | |
| 12 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 62:73 (20%)97:108 (17%) | view | |
| 11 | x 2 | OpenAI/src/Custom/AssistantsOpenAI/src/Custom/Assistants | 361:373 (2%)391:403 (2%) | view | |
| 11 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 28:48 (25%)29:49 (23%) | view | |
| 11 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 6:24 (100%)6:24 (100%) | view | |
| 11 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 28:48 (25%)29:49 (23%) | view | |
| 10 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 25:35 (10%)46:56 (10%) | view | |
| 10 | x 2 | OpenAI/src/Custom/ImagesOpenAI/src/Custom/Moderations | 120:139 (4%)114:133 (10%) | view | |
| 10 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 38:57 (23%)38:57 (23%) | view | |
| 10 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:28 (41%)14:28 (50%) | view | |
| 10 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:28 (41%)14:28 (50%) | view | |
| 10 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 72:90 (14%)42:60 (17%) | view | |
| 10 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:28 (41%)14:28 (50%) | view | |
| 10 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 42:60 (17%)72:90 (14%) | view | |
| 10 | x 2 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/Images | 114:133 (10%)120:139 (4%) | view | |
| 10 | x 2 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/Moderations | 114:133 (10%)114:133 (10%) | view | |
| 9 | x 2 | OpenAI.Responses/src/CustomOpenAI.Responses/src/Custom | 303:315 (2%)324:336 (2%) | view | |
| 9 | x 2 | OpenAI/src/Custom/AssistantsOpenAI/src/Custom/Assistants | 589:599 (2%)616:626 (2%) | view | |
| 9 | x 2 | OpenAI/src/Custom/ImagesOpenAI/src/Custom/Images | 27:44 (13%)18:35 (34%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI.Responses/src/Custom/Streaming | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Realtime/GA/Item/FunctionOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI/src/Custom/AssistantsOpenAI/src/Custom/Assistants | 29:48 (56%)32:51 (64%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/McpToolOpenAI.Responses/src/Custom/Streaming | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 16:28 (37%)18:30 (42%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:27 (45%)14:27 (42%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/Item/Function | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/Item/Mcp | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/Item/Mcp | 13:28 (81%)13:28 (81%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 16:28 (45%)18:30 (42%) | view | |
| 9 | x 2 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:27 (37%)14:27 (42%) | view | |
| 9 | x 2 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI/src/Custom/Realtime/GA/Item/Function | 13:28 (81%)13:28 (81%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 7 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/InternalOpenAI/src/Custom/Chat/Messages | 20:28 (28%)18:26 (28%)18:26 (25%)18:26 (30%)18:26 (30%)20:28 (20%)18:26 (30%) | view | |
| 6 | x 7 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/InternalOpenAI/src/Custom/Chat/Messages | 18:26 (28%)16:24 (28%)16:24 (25%)16:24 (30%)16:24 (30%)18:26 (20%)16:24 (30%) | view | |
| 6 | x 7 | OpenAI.Responses/src/Cus...ols/CodeInterpreterToolOpenAI/src/Custom/Realtime/GA/Tool/McpToolOpenAI/src/Custom/Realtime/GA/TracingOpenAI/src/Custom/Realtime/GA/TruncationOpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/MaxOutputTokenCountOpenAI/src/Custom/Realtime/GA/ToolChoice | 14:28 (13%)15:26 (13%)15:26 (13%)15:26 (13%)15:26 (13%)15:26 (16%)15:26 (13%) | view | |
| 6 | x 7 | OpenAI.Responses/src/Cus...ols/CodeInterpreterToolOpenAI/src/Custom/Realtime/GA/Tool/McpToolOpenAI/src/Custom/Realtime/GA/TracingOpenAI/src/Custom/Realtime/GA/TruncationOpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/MaxOutputTokenCountOpenAI/src/Custom/Realtime/GA/ToolChoice | 13:21 (13%)14:22 (13%)14:22 (13%)14:22 (13%)14:22 (13%)14:22 (16%)14:22 (13%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Batch/InternalOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal | 58:69 (15%)79:90 (8%)79:90 (8%)87:98 (9%)49:60 (10%)61:72 (15%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Batch/InternalOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal | 56:67 (15%)77:88 (8%)77:88 (8%)85:96 (9%)47:58 (10%)59:70 (15%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Batch/InternalOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal | 54:65 (15%)75:86 (8%)75:86 (8%)83:94 (9%)45:56 (10%)57:68 (15%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 21:29 (28%)19:27 (28%)19:27 (25%)19:27 (30%)19:27 (30%)19:27 (30%) | view | |
| 6 | x 6 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 28:35 (5%)26:33 (10%)50:57 (5%)72:79 (5%)94:101 (5%)48:55 (10%) | view | |
| 6 | x 6 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/LegacyCompletions/InternalOpenAI/src/Custom/ModerationsOpenAI/src/Custom/ImagesOpenAI/src/Custom/AudioOpenAI/src/Custom/Chat | 86:92 (6%)75:81 (27%)86:92 (6%)92:98 (2%)92:98 (2%)88:94 (4%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Realtime/GA/Item/McpOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/Items/McpToolOpenAI.Responses/src/Custom/StreamingOpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/Item/Mcp | 17:28 (54%)17:28 (54%)17:28 (54%)17:28 (54%)17:28 (54%)17:28 (54%) | view | |
| 6 | x 6 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 27:34 (5%)25:32 (10%)49:56 (5%)71:78 (5%)93:100 (5%)47:54 (10%) | view | |
| 6 | x 6 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/LegacyCompletions/InternalOpenAI/src/Custom/ModerationsOpenAI/src/Custom/ImagesOpenAI/src/Custom/AudioOpenAI/src/Custom/Chat | 114:120 (6%)97:103 (27%)114:120 (6%)120:126 (2%)114:120 (2%)112:118 (4%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Realtime/GA/Item/McpOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/Items/McpToolOpenAI.Responses/src/Custom/StreamingOpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/Item/Mcp | 13:19 (54%)13:19 (54%)13:19 (54%)13:19 (54%)13:19 (54%)13:19 (54%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Realtime/GA/Item/McpOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/Items/McpToolOpenAI.Responses/src/Custom/StreamingOpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/Item/Mcp | 16:26 (54%)16:26 (54%)16:26 (54%)16:26 (54%)16:26 (54%)16:26 (54%) | view | |
| 6 | x 6 | OpenAI/src/Custom/Realtime/GA/Item/McpOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/Items/McpToolOpenAI.Responses/src/Custom/StreamingOpenAI.Responses/src/Custom/Items/McpToolOpenAI/src/Custom/Realtime/GA/Item/Mcp | 14:25 (54%)14:25 (54%)14:25 (54%)14:25 (54%)14:25 (54%)14:25 (54%) | view | |
| 6 | x 6 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 62:71 (13%)69:78 (12%)59:68 (13%)58:67 (13%)58:67 (13%)62:71 (13%) | view | |
| 6 | x 5 | OpenAI/src/Custom/AudioOpenAI/src/Custom/ChatOpenAI/src/Custom/ImagesOpenAI/src/Custom/ModerationsOpenAI/src/Custom/Embeddings | 12:21 (66%)12:21 (66%)12:21 (66%)12:21 (66%)12:21 (66%) | view | |
| 6 | x 5 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 14:22 (25%)14:22 (30%)14:22 (30%)14:22 (28%)14:22 (30%) | view | |
| 6 | x 5 | OpenAI/src/Custom/AudioOpenAI/src/Custom/ChatOpenAI/src/Custom/ImagesOpenAI/src/Custom/ModerationsOpenAI/src/Custom/Embeddings | 10:19 (66%)10:19 (66%)10:19 (66%)10:19 (66%)10:19 (66%) | view | |
| 6 | x 5 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 21:28 (25%)21:28 (30%)23:30 (28%)21:28 (30%)21:28 (30%) | view | |
| 6 | x 5 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 27:32 (6%)48:53 (6%)67:72 (6%)86:91 (6%)131:136 (6%) | view | |
| 6 | x 4 | OpenAI/src/Custom/AssistantsOpenAI/src/Custom/AssistantsOpenAI/src/Custom/AssistantsOpenAI/src/Custom/Assistants | 783:789 (1%)809:815 (1%)833:839 (1%)860:866 (1%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI/src/Custom/Realtime/GA/Item/Function | 16:26 (54%)16:26 (54%)16:26 (54%)16:26 (54%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI/src/Custom/Realtime/GA/Item/Function | 17:28 (54%)17:28 (54%)17:28 (54%)17:28 (54%) | view | |
| 6 | x 4 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 28:33 (6%)49:54 (6%)68:73 (6%)87:92 (6%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdate | 14:25 (54%)14:25 (54%)14:25 (54%)14:25 (54%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI/src/Custom/Realtime/GA/Item/Function | 14:25 (54%)14:25 (54%)14:25 (54%)14:25 (54%) | view | |
| 6 | x 4 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 101:106 (8%)104:109 (9%)101:106 (8%)66:71 (10%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdate | 13:19 (54%)13:19 (54%)13:19 (54%)13:19 (54%) | view | |
| 6 | x 4 | OpenAI/src/Custom/ImagesOpenAI/src/Custom/ImagesOpenAI/src/Custom/ImagesOpenAI/src/Custom/Images | 342:348 (2%)379:385 (2%)575:581 (2%)613:619 (2%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/Items/FunctionToolOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI/src/Custom/Realtime/GA/Item/Function | 13:19 (54%)13:19 (54%)13:19 (54%)13:19 (54%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdate | 17:28 (54%)17:28 (54%)17:28 (54%)17:28 (54%) | view | |
| 6 | x 4 | OpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdateOpenAI.Responses/src/Custom/StreamingOpenAI/src/Custom/Realtime/GA/ServerUpdate | 16:26 (54%)16:26 (54%)16:26 (54%)16:26 (54%) | view | |
| 6 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/CustomOpenAI/src/Custom/Realtime | 22:39 (16%)23:40 (16%)22:39 (16%) | view | |
| 6 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/CustomOpenAI/src/Custom/Realtime | 12:22 (16%)13:23 (16%)12:22 (16%) | view | |
| 6 | x 3 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ModerationsOpenAI/src/Custom/Images | 118:132 (6%)118:132 (6%)124:138 (2%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 31:41 (13%)32:42 (13%)31:41 (13%) | view | |
| 6 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/CustomOpenAI/src/Custom/Realtime | 25:42 (16%)26:43 (16%)25:42 (16%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 30:39 (13%)31:40 (13%)30:39 (13%) | view | |
| 6 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/CustomOpenAI/src/Custom/Realtime | 56:69 (16%)57:70 (16%)56:69 (16%) | view | |
| 6 | x 3 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ModerationsOpenAI/src/Custom/Images | 116:127 (6%)116:127 (6%)122:133 (2%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 56:66 (13%)57:67 (13%)56:66 (13%) | view | |
| 6 | x 3 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ModerationsOpenAI/src/Custom/Images | 87:95 (6%)87:95 (6%)93:101 (2%) | view | |
| 6 | x 3 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 85:90 (6%)110:115 (6%)130:135 (6%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal | 88:95 (8%)88:95 (8%)70:77 (15%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 34:42 (13%)35:43 (13%)34:42 (13%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 102:107 (8%)102:107 (8%)67:72 (10%) | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal | 81:92 (8%)81:92 (8%)63:74 (15%) | view | |
| 6 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/CustomOpenAI/src/Custom/Realtime | 15:26 (16%)16:27 (16%)15:26 (16%) | view |
Duplicated Units
The list of top 24 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 18 | x 3 | OpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/MessagesOpenAI/src/Custom/Chat/Messages | 13:34 13:34 13:34 | view | |
| 17 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 16:36 14:34 | view | |
| 17 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 38:58 36:56 | view | |
| 17 | x 3 | OpenAI.Responses/src/CustomOpenAI/src/Custom/RealtimeOpenAI/src/Custom | 85:106 85:106 87:108 | view | |
| 17 | x 2 | OpenAI/src/Custom/FineTuningOpenAI/src/Custom/FineTuning | 23:43 10:30 | view | |
| 17 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 29:53 26:51 | view | |
| 14 | x 2 | OpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/Tool/McpTool | 26:41 26:41 | view | |
| 11 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 8:21 8:21 | view | |
| 10 | x 2 | OpenAI.Responses/src/Custom/InternalOpenAI/src/Custom/Internal | 196:209 98:111 | view | |
| 9 | x 2 | OpenAI.Responses/src/CustomOpenAI/src/Custom | 28:39 46:57 | view | |
| 9 | x 3 | OpenAI/src/Custom/FineTuningOpenAI/src/Custom/FineTuningOpenAI/src/Custom/FineTuning | 68:78 69:79 69:79 | view | |
| 8 | x 2 | OpenAI.Responses/src/CustomOpenAI/src/Custom | 16:26 34:44 | view | |
| 8 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 22:32 22:32 | view | |
| 8 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 34:44 34:44 35:45 | view | |
| 8 | x 2 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 38:48 38:48 | view | |
| 7 | x 2 | OpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/Tool/McpTool | 82:91 82:91 | view | |
| 7 | x 5 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ChatOpenAI/src/Custom/ImagesOpenAI/src/Custom/AudioOpenAI/src/Custom/Moderations | 14:23 14:23 14:23 14:23 14:23 | view | |
| 7 | x 5 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ImagesOpenAI/src/Custom/AudioOpenAI/src/Custom/LegacyCompletions/InternalOpenAI/src/Custom/Moderations | 84:93 90:99 90:99 73:82 84:93 | view | |
| 7 | x 5 | OpenAI/src/Custom/EmbeddingsOpenAI/src/Custom/ImagesOpenAI/src/Custom/AudioOpenAI/src/Custom/LegacyCompletions/InternalOpenAI/src/Custom/Moderations | 112:121 118:127 112:121 95:104 112:121 | view | |
| 6 | x 2 | OpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/Tool/McpTool | 21:29 21:29 | view | |
| 6 | x 2 | OpenAI.Responses/src/Custom/Tools/McpToolOpenAI/src/Custom/Realtime/GA/Tool/McpTool | 16:24 16:24 | view | |
| 6 | x 12 | OpenAI/src/Custom/EvalsOpenAI/src/Custom/AssistantsOpenAI/src/Custom/ModelsOpenAI/src/Custom/FineTuningOpenAI/src/Custom/VectorStoresOpenAI/src/Custom/VideosOpenAI/src/Custom/ConversationsOpenAI/src/Custom/BatchOpenAI/src/Custom/FilesOpenAI/src/Custom/Skills... | 12:19 12:19 13:20 12:19 12:19 12:19 12:19 12:19 12:19 12:19 ... | view | |
| 6 | x 2 | OpenAI/src/Custom/Chat/StreamingOpenAI/src/Custom/Chat/Streaming | 23:30 23:30 | view | |
| 6 | x 3 | OpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/PaginationOpenAI/src/Custom/FineTuning/Internal/Pagination | 72:82 72:82 73:83 | view |
About This Analysis
- 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...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."