microsoft / presidio
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
  • 16% duplication:
    • 4,085 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 668 duplicated lines
  • 273 duplicates
system16% (668 lines)
Duplication per Extension
py17% (614 lines)
yml17% (34 lines)
cfg76% (20 lines)
Duplication per Component (primary)
presidio-analyzer/presidio_analyzer/predefined_recognizers32% (406 lines)
presidio-analyzer/presidio_analyzer9% (61 lines)
presidio-analyzer17% (35 lines)
ROOT12% (34 lines)
presidio-anonymizer11% (30 lines)
presidio-image-redactor15% (26 lines)
presidio-image-redactor/presidio_image_redactor15% (24 lines)
presidio-anonymizer/presidio_anonymizer/operators6% (16 lines)
presidio-analyzer/presidio_analyzer/recognizer_registry11% (16 lines)
presidio-anonymizer/presidio_anonymizer/entities7% (14 lines)
presidio-image-redactor/presidio_image_redactor/entities9% (6 lines)
overrides0% (0 lines)
presidio-analyzer/conf0% (0 lines)
presidio-analyzer/presidio_analyzer/nlp_engine0% (0 lines)
presidio-anonymizer/presidio_anonymizer0% (0 lines)
presidio-anonymizer/presidio_anonymizer/core0% (0 lines)
presidio-anonymizer/presidio_anonymizer/services0% (0 lines)

Duplication Between Components (50+ lines)

G presidio-analyzer/presidio_analyzer presidio-analyzer/presidio_analyzer presidio-analyzer/presidio_analyzer/predefined_recognizers presidio-analyzer/presidio_analyzer/predefined_recognizers presidio-analyzer/presidio_analyzer--presidio-analyzer/presidio_analyzer/predefined_recognizers 61

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 273 duplicates...
Size#FoldersFilesLinesCode
21 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
credit_card_recognizer.py
medical_license_recognizer.py
47:71 (35%)
41:65 (40%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_acn_recognizer.py
au_medicare_recognizer.py
49:72 (27%)
49:72 (28%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_medicare_recognizer.py
uk_nhs_recognizer.py
49:72 (28%)
40:62 (32%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_abn_recognizer.py
uk_nhs_recognizer.py
52:75 (27%)
40:62 (32%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_abn_recognizer.py
au_tfn_recognizer.py
52:75 (27%)
55:78 (27%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_abn_recognizer.py
au_acn_recognizer.py
52:75 (27%)
49:72 (27%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_abn_recognizer.py
au_medicare_recognizer.py
52:75 (27%)
49:72 (28%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_acn_recognizer.py
uk_nhs_recognizer.py
49:72 (27%)
40:62 (32%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_acn_recognizer.py
au_tfn_recognizer.py
49:72 (27%)
55:78 (27%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_medicare_recognizer.py
au_tfn_recognizer.py
49:72 (28%)
55:78 (27%)
view
15 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_tfn_recognizer.py
uk_nhs_recognizer.py
55:78 (27%)
40:62 (32%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_acn_recognizer.py
medical_license_recognizer.py
49:63 (25%)
41:56 (26%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_medicare_recognizer.py
medical_license_recognizer.py
49:63 (26%)
41:56 (26%)
view
14 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
133:154 (22%)
69:90 (35%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_tfn_recognizer.py
medical_license_recognizer.py
55:69 (25%)
41:56 (26%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_acn_recognizer.py
es_nif_recognizer.py
49:63 (25%)
35:49 (37%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
es_nif_recognizer.py
medical_license_recognizer.py
35:49 (37%)
41:56 (26%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_tfn_recognizer.py
es_nif_recognizer.py
55:69 (25%)
35:49 (37%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
au_abn_recognizer.py
credit_card_recognizer.py
52:66 (25%)
47:62 (23%)
view
14 x 2 presidio-analyzer/presid.../predefined_recognizers
presidio-analyzer/presid.../predefined_recognizers
credit_card_recognizer.py
es_nif_recognizer.py
47:62 (23%)
35:49 (37%)
view
Duplicated Units
The list of top 8 duplicated units.
See data for all 8 unit duplicates...
Size#FoldersFilesLinesCode
7 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
15 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
8 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
8 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
7 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
11 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
6 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view
6 x 2 presidio-analyzer/presidio_analyzer
presidio-anonymizer/pres...nymizer/entities/engine
recognizer_result.py
recognizer_result.py
0:0 
0:0 
view