Source Code Analysis Scope
Files includes and excluded from analyses
pt
diff
patch
pyi
pkl
in
gitattributes

scoping details...
  • 24 extensions are included in analyses: py, md, json, txt, pt, yml, sh, toml, cu, yaml, h, cc, diff, cuh, gitignore, patch, pyi, cpp, pkl, dockerignore, css, in, ipynb, gitattributes
  • 10 criteria are used to exclude files from analysis:
    • exclude files with path like ".*/(3rd|[Tt]hird)[-_]?[Pp]arty/.*" (Dependencies) (48 files).
    • exclude files with path like ".*/[Vv]endors?/.*" (Dependencies) (56 files).
    • exclude files with path like ".*/docs/.*" (Documentation) (66 files).
    • exclude files with path like ".*/bin/.*" (Binaries for distribution) (87 files).
    • exclude files with path like ".*/git[-]commit[-]trailers[.]txt" (Git history trailers) (1 file).
    • exclude files with path like ".*/git[-]history[.]txt" (Git history) (1 file).
    • exclude files with path like ".*/git[-][a-zA-Z0-9_]+[.]txt" (Git data exports for sokrates analyses) (1 file).
    • exclude files with path like ".*/_sokrates/.*" (Sokrates files) (0 files).
    • exclude files with path like ".*/_sokrates_landscape/.*" (Sokrates landscape files) (0 files).
    • exclude files with path like ".*/sokrates_.*?[.]json" (Sokrates conventions and configurations) (0 files).
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.
main726274 LOC (66%) 3,636 files
test240456 LOC (22%) 1,731 files
generated0 LOC (0%) 0 files
build and deployment10976 LOC (1%) 173 files
other114970 LOC (10%) 942 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pt
pyi
in
Explore:   circles  |  sunburst

py688021 LOC (94%) 3,417 files
cu12123 LOC (1%) 49 files
cuh9800 LOC (1%) 20 files
pt5816 LOC (<1%) 5 files
cc5577 LOC (<1%) 28 files
h1868 LOC (<1%) 37 files
yaml1798 LOC (<1%) 60 files
cpp576 LOC (<1%) 6 files
toml494 LOC (<1%) 2 files
pyi170 LOC (<1%) 10 files
in31 LOC (<1%) 2 files

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3636 files match defined criteria (726,274 LOC, 100.0% vs. main code):
    • 3,417 py files (688,021 LOC)
    • 49 cu files (12,123 LOC)
    • 20 cuh files (9,800 LOC)
    • 5 pt files (5,816 LOC)
    • 28 cc files (5,577 LOC)
    • 37 h files (1,868 LOC)
    • 60 yaml files (1,798 LOC)
    • 6 cpp files (576 LOC)
    • 2 toml files (494 LOC)
    • 10 pyi files (170 LOC)
    • 2 in files (31 LOC)
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst

py239128 LOC (99%) 1,712 files
yaml1324 LOC (<1%) 18 files
sh4 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/[Ss]pecs/.*".
  • 1731 files match defined criteria (240,456 LOC, 33.1% vs. main code):
    • 1,712 py files (239,128 LOC)
    • 18 yaml files (1,324 LOC)
    • 1 sh files (4 LOC)
Build and Deployment Code
Source code used to configure or support build and deployment process.
gitattributes
Explore:   circles  |  sunburst

sh4946 LOC (45%) 66 files
toml3739 LOC (34%) 58 files
yaml962 LOC (8%) 20 files
gitignore662 LOC (6%) 17 files
py597 LOC (5%) 8 files
dockerignore68 LOC (<1%) 3 files
gitattributes2 LOC (<1%) 1 file

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/pyproject[.]toml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/requirements[a-zA-Z0-9._-]*[.]txt".
    • files with paths like ".*/setup[.]py".
    • files with paths like ".*/[.]github/workflows/.*[.]ya?ml".
    • files with paths like ".*/CMakeLists[.]txt".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like "(.*/)?[.]dockerignore".
    • files with paths like ".*/[.]gitattributes".
  • 173 files match defined criteria (10,976 LOC, 1.5% vs. main code):
    • 66 sh files (4,946 LOC)
    • 58 toml files (3,739 LOC)
    • 20 yaml files (962 LOC)
    • 17 gitignore files (662 LOC)
    • 8 py files (597 LOC)
    • 3 dockerignore files (68 LOC)
    • 1 gitattributes files (2 LOC)
Other Code
diff
patch
Explore:   circles  |  sunburst

json66455 LOC (57%) 319 files
md23132 LOC (20%) 349 files
txt18100 LOC (15%) 200 files
diff2791 LOC (2%) 27 files
yaml2203 LOC (1%) 30 files
patch1883 LOC (1%) 14 files
py406 LOC (<1%) 3 files

scope details...
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/vendor/.*".
    • files with paths like ".*[.]diff".
    • files with paths like ".*[.]patch".
  • 942 files match defined criteria (114,970 LOC, 15.8% vs. main code):
    • 319 json files (66,455 LOC)
    • 349 md files (23,132 LOC)
    • 200 txt files (18,100 LOC)
    • 27 diff files (2,791 LOC)
    • 30 yaml files (2,203 LOC)
    • 14 patch files (1,883 LOC)
    • 3 py files (406 LOC)
About This Analysis
learn more about scopes (main, test, generated, build, other)...

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

learn more about used code analyzers...
  • *.py files are analyzed with PythonAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Basic heuristic dependency analysis
  • *.cu files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cuh files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.pt files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cc files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.h files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.yaml files are analyzed with YamlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cpp files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.toml files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.pyi files are analyzed with PythonAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Basic heuristic dependency analysis
  • *.in files are analyzed with RustAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis