azure / app-service-linux-docs
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
pyi
proto
txt
f90
pxd
f
csproj
pkl
properties
ini
cmd
cfg
pxi
mod
in
gitattributes
i
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.

  • 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.

main392742 LOC (24%) 3,065 files
test93540 LOC (5%) 451 files
generated44311 LOC (2%) 22 files
build and deployment500 LOC (<1%) 8 files
other1055209 LOC (66%) 5,079 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
pyi
pxd
proto
pxi
in
cfg
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3065 files match defined criteria (392,742 LOC, 100.0% vs. main code):
    • 2,747 *.py files (348,721 LOC)
    • 105 *.pyi files (17,485 LOC)
    • 80 *.h files (10,048 LOC)
    • 22 *.hpp files (5,010 LOC)
    • 2 *.cpp files (4,016 LOC)
    • 12 *.pyx files (2,074 LOC)
    • 11 *.pxd files (2,062 LOC)
    • 43 *.c files (1,768 LOC)
    • 6 *.java files (504 LOC)
    • 12 *.proto files (326 LOC)
    • 4 *.asm files (268 LOC)
    • 2 *.pxi files (160 LOC)
    • 5 *.js files (139 LOC)
    • 6 *.yaml files (102 LOC)
    • 1 *.in files (27 LOC)
    • 3 *.pug files (16 LOC)
    • 1 *.css files (7 LOC)
    • 1 *.cfg files (5 LOC)
    • 2 *.cmd files (4 LOC)
  • " *.py" is biggest, containing 88.79% of LOC.
  • " *.cmd" is smallest, containing 0% of LOC.


*.py348721 LOC (88%) 2,747 files
*.pyi17485 LOC (4%) 105 files
*.h10048 LOC (2%) 80 files
*.hpp5010 LOC (1%) 22 files
*.cpp4016 LOC (1%) 2 files
*.pyx2074 LOC (<1%) 12 files
*.pxd2062 LOC (<1%) 11 files
*.c1768 LOC (<1%) 43 files
*.java504 LOC (<1%) 6 files
*.proto326 LOC (<1%) 12 files
*.asm268 LOC (<1%) 4 files
*.pxi160 LOC (<1%) 2 files
*.js139 LOC (<1%) 5 files
*.yaml102 LOC (<1%) 6 files
*.in27 LOC (<1%) 1 file
*.pug16 LOC (<1%) 3 files
*.css7 LOC (<1%) 1 file
*.cfg5 LOC (<1%) 1 file
*.cmd4 LOC (<1%) 2 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
pyi
f90
f
pkl
mod
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/test_.*".
    • files with paths like ".*/testing[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*_tests[.].*".
  • 451 files match defined criteria (93,540 LOC, 23.8% vs. main code):
    • 280 *.py files (85,125 LOC)
    • 101 *.pyi files (6,097 LOC)
    • 42 *.f90 files (814 LOC)
    • 4 *.c files (624 LOC)
    • 3 *.cpp files (435 LOC)
    • 15 *.f files (375 LOC)
    • 4 *.java files (58 LOC)
    • 1 *.pkl files (8 LOC)
    • 1 *.mod files (4 LOC)
  • " *.py" is biggest, containing 91% of LOC.
  • " *.mod" is smallest, containing 0% of LOC.


*.py85125 LOC (91%) 280 files
*.pyi6097 LOC (6%) 101 files
*.f90814 LOC (<1%) 42 files
*.c624 LOC (<1%) 4 files
*.cpp435 LOC (<1%) 3 files
*.f375 LOC (<1%) 15 files
*.java58 LOC (<1%) 4 files
*.pkl8 LOC (<1%) 1 file
*.mod4 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.](py|java|h|cc|cpp|m|rb|php)" AND any line of content like ".*Generated by the protocol buffer compiler[.][ ]+DO NOT EDIT[!].*".
    • files with paths like ".*[.](c|cpp)" AND any line of content like ".*Generated by Cython.*".
    • files with paths like ".*/_generated/.*".
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*/package[-]lock[.]json".
  • 22 files match defined criteria (44,311 LOC, 11.3% vs. main code):
    • 5 *.cpp files (33,164 LOC)
    • 1 *.c files (5,244 LOC)
    • 5 *.json files (5,153 LOC)
    • 11 *.py files (750 LOC)
  • " *.cpp" is biggest, containing 74.84% of LOC.
  • " *.py" is smallest, containing 1.69% of LOC.


*.cpp33164 LOC (74%) 5 files
*.c5244 LOC (11%) 1 file
*.json5153 LOC (11%) 5 files
*.py750 LOC (1%) 11 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/docker[-]compose[.]yaml".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*/[.]gitattributes".
  • 8 files match defined criteria (500 LOC, 0.1% vs. main code):
    • 4 *.xml files (310 LOC)
    • 4 *.yaml files (190 LOC)
  • " *.xml" is biggest, containing 62% of LOC.
  • " *.yaml" is smallest, containing 38% of LOC.


*.xml310 LOC (62%) 4 files
*.yaml190 LOC (38%) 4 files
Other Code
pyi
pxd
txt
proto
i
f90
f
cfg
pkl
ini
pxi
in
mod
cmd
properties
Explore:   circles  |  sunburst
  • 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 ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/site[-]packages/.*".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Dd]emos?/.*".
  • 5079 files match defined criteria (1,055,209 LOC, 268.7% vs. main code):
    • 4,200 *.py files (921,372 LOC)
    • 13 *.cpp files (35,750 LOC)
    • 213 *.pyi files (24,386 LOC)
    • 72 *.pyx files (18,025 LOC)
    • 77 *.h files (11,122 LOC)
    • 56 *.c files (10,613 LOC)
    • 11 *.json files (6,192 LOC)
    • 84 *.md files (4,725 LOC)
    • 65 *.pxd files (4,346 LOC)
    • 148 *.txt files (4,269 LOC)
    • 9 *.cu files (2,800 LOC)
    • 2 *.cuh files (2,569 LOC)
    • 11 *.hpp files (2,505 LOC)
    • 12 *.proto files (2,352 LOC)
    • 1 *.i files (855 LOC)
    • 42 *.f90 files (814 LOC)
    • 1 *.jinja files (523 LOC)
    • 15 *.f files (375 LOC)
    • 2 *.hh files (350 LOC)
    • 3 *.cfg files (259 LOC)
    • 11 *.pkl files (190 LOC)
    • 1 *.css files (138 LOC)
    • 2 *.asm files (134 LOC)
    • 6 *.rst files (132 LOC)
    • 4 *.yaml files (117 LOC)
    • 8 *.ini files (87 LOC)
    • 1 *.pxi files (80 LOC)
    • 1 *.cc files (51 LOC)
    • 1 *.in files (27 LOC)
    • 1 *.sh files (16 LOC)
    • 1 *.xml files (14 LOC)
    • 1 *.toml files (13 LOC)
    • 1 *.mod files (4 LOC)
    • 1 *.cmd files (2 LOC)
    • 2 *.properties files (2 LOC)
  • " *.py" is biggest, containing 87.32% of LOC.
  • " *.properties" is smallest, containing 0% of LOC.


*.py921372 LOC (87%) 4,200 files
*.cpp35750 LOC (3%) 13 files
*.pyi24386 LOC (2%) 213 files
*.pyx18025 LOC (1%) 72 files
*.h11122 LOC (1%) 77 files
*.c10613 LOC (1%) 56 files
*.json6192 LOC (<1%) 11 files
*.md4725 LOC (<1%) 84 files
*.pxd4346 LOC (<1%) 65 files
*.txt4269 LOC (<1%) 148 files
*.cu2800 LOC (<1%) 9 files
*.cuh2569 LOC (<1%) 2 files
*.hpp2505 LOC (<1%) 11 files
*.proto2352 LOC (<1%) 12 files
*.i855 LOC (<1%) 1 file
*.f90814 LOC (<1%) 42 files
*.jinja523 LOC (<1%) 1 file
*.f375 LOC (<1%) 15 files
*.hh350 LOC (<1%) 2 files
*.cfg259 LOC (<1%) 3 files
*.pkl190 LOC (<1%) 11 files
*.css138 LOC (<1%) 1 file
*.asm134 LOC (<1%) 2 files
*.rst132 LOC (<1%) 6 files
*.yaml117 LOC (<1%) 4 files
*.ini87 LOC (<1%) 8 files
*.pxi80 LOC (<1%) 1 file
*.cc51 LOC (<1%) 1 file
*.in27 LOC (<1%) 1 file
*.sh16 LOC (<1%) 1 file
*.xml14 LOC (<1%) 1 file
*.toml13 LOC (<1%) 1 file
*.mod4 LOC (<1%) 1 file
*.cmd2 LOC (<1%) 1 file
*.properties2 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-05-06 21:45