File Complexity Overall
  • There are 88 files with units, with 23,381 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 2 complex files (McCabe index sum 126-250; 2,363 lines of code)
    • 13 medium complex files (McCabe index sum 51-125; 7,210 lines of code)
    • 26 slightly complex files (McCabe index sum 26-50; 8,470 lines of code)
    • 47 simple files (McCabe index sum 1-25; 5,338 lines of code)
  • 26 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 10% | 30% | 36% | 22%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
py0% | 10% | 30% | 36% | 22%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
threestudio0% | 10% | 31% | 36% | 21%
ROOT0% | 0% | 34% | 49% | 16%
load0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
train_dreambooth.py
in threestudio/scripts
1192 17 184 15 123
train_dreambooth_lora.py
in threestudio/scripts
1171 14 154 13 103
train_text_to_image_lora.py
in threestudio/scripts
726 3 122 17 115
dreamcraft3d.py
in threestudio/systems
514 12 103 20 58
vae.py
in threestudio/utils/GAN
861 38 85 10 11
convert_zero123_to_diffusers.py
in threestudio/scripts
818 12 85 10 40
saving.py
in threestudio/utils
609 27 84 14 20
dpt.py
in threestudio/utils
653 43 79 12 6
372 27 71 19 8
ops.py
in threestudio/utils
357 27 69 19 27
networks.py
in threestudio/models
351 33 60 17 7
stable_diffusion_bsd_guidance.py
in threestudio/models/guidance
893 30 56 6 18
base.py
in threestudio/systems
316 36 55 17 4
base.py
in threestudio/models/prompt_processors
430 15 52 12 12
metric_utils.py
in threestudio/scripts
310 21 51 16 6
stable_diffusion_vsd_guidance.py
in threestudio/models/guidance
816 25 48 6 20
zero123.py
in threestudio/systems
330 9 48 15 27
stable_diffusion_unified_guidance.py
in threestudio/models/guidance
601 16 45 7 17
uncond.py
in threestudio/data
422 17 43 10 9
zero123_guidance.py
in threestudio/models/guidance
421 15 41 10 11
zero123_unified_guidance.py
in threestudio/models/guidance
600 17 40 7 18
images.py
in threestudio/data
299 20 40 13 12
image.py
in threestudio/data
299 20 40 13 12
network_util.py
in threestudio/utils/GAN
181 21 39 22 4
controlnet_reg_guidance.py
in threestudio/models/guidance
383 18 39 10 5
mesh.py
in threestudio/models
228 19 39 17 9
implicit_sdf.py
in threestudio/models/geometry
358 9 39 11 22
336 13 37 11 15
launch.py
in root
200 3 35 18 32
misc.py
in threestudio/utils
124 12 35 28 11
controlnet_guidance.py
in threestudio/models/guidance
437 13 35 8 16
discriminator.py
in threestudio/utils/GAN
165 14 34 21 7
stable_zero123_guidance.py
in threestudio/models/guidance
269 12 33 12 11
callbacks.py
in threestudio/utils
122 19 32 26 5
normalunet.py
in threestudio/utils/GAN
322 13 31 10 8
tetrahedra_sdf_grid.py
in threestudio/models/geometry
324 6 31 10 16
attention.py
in threestudio/utils/GAN
206 22 30 15 3
mobilenet.py
in threestudio/utils/GAN
201 17 30 15 7
util.py
in threestudio/utils/GAN
158 11 28 18 4
stable_diffusion_guidance.py
in threestudio/models/guidance
524 11 28 5 14
perceptual.py
in threestudio/utils/perceptual
144 13 26 18 8
lpips.py
in threestudio/utils/lpips
99 11 24 24 8
175 7 22 13 8
deep_floyd_guidance.py
in threestudio/models/guidance
415 7 22 5 12
utils.py
in threestudio/systems
88 6 22 25 5
config.py
in threestudio/utils
98 6 21 21 7
base.py
in threestudio/models/geometry
173 11 21 12 5
distribution.py
in threestudio/utils/GAN
77 11 20 26 6
nerf_volume_renderer.py
in threestudio/models/renderers
409 12 20 5 3
neus_volume_renderer.py
in threestudio/models/renderers
340 13 19 6 3
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...