@tushar-br/editing-pack 1.0.188 → 1.0.190

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1216) hide show
  1. package/package.json +1 -1
  2. package/staging_area/Blender/blender.pdb.ts_part_0 +0 -0
  3. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__init__.py +0 -173
  4. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/__init__.cpython-311.pyc +0 -0
  5. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/camera.cpython-311.pyc +0 -0
  6. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/engine.cpython-311.pyc +0 -0
  7. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/operators.cpython-311.pyc +0 -0
  8. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/presets.cpython-311.pyc +0 -0
  9. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/properties.cpython-311.pyc +0 -0
  10. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/ui.cpython-311.pyc +0 -0
  11. package/staging_area/Blender/5.0/scripts/addons_core/cycles/__pycache__/version_update.cpython-311.pyc +0 -0
  12. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/shader_data.h +0 -452
  13. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/triangle.h +0 -278
  14. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/triangle_intersect.h +0 -166
  15. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/geom/volume.h +0 -104
  16. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/globals.h +0 -13
  17. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/image.h +0 -12
  18. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/displacement_shader.h +0 -43
  19. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/guiding.h +0 -641
  20. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/init_from_bake.h +0 -344
  21. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/init_from_camera.h +0 -110
  22. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_closest.h +0 -443
  23. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_dedicated_light.h +0 -232
  24. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_shadow.h +0 -183
  25. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_subsurface.h +0 -24
  26. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/intersect_volume_stack.h +0 -250
  27. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/megakernel.h +0 -114
  28. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/mnee.h +0 -1123
  29. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/path_state.h +0 -425
  30. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_background.h +0 -210
  31. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_dedicated_light.h +0 -243
  32. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_light.h +0 -95
  33. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_shadow.h +0 -192
  34. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_surface.h +0 -885
  35. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shade_volume.h +0 -2947
  36. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_catcher.h +0 -79
  37. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_linking.h +0 -69
  38. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/shadow_state_template.h +0 -99
  39. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state.h +0 -276
  40. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_flow.h +0 -255
  41. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_template.h +0 -152
  42. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/state_util.h +0 -602
  43. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface.h +0 -251
  44. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface_disk.h +0 -220
  45. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/subsurface_random_walk.h +0 -462
  46. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/surface_shader.h +0 -1198
  47. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/volume_shader.h +0 -539
  48. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/integrator/volume_stack.h +0 -258
  49. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/area.h +0 -537
  50. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/background.h +0 -500
  51. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/common.h +0 -86
  52. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/distant.h +0 -167
  53. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/distribution.h +0 -60
  54. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/light.h +0 -499
  55. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/point.h +0 -240
  56. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/sample.h +0 -545
  57. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/spot.h +0 -347
  58. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/tree.h +0 -951
  59. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/light/triangle.h +0 -339
  60. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/camera.h +0 -81
  61. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/closures_setup.h +0 -1259
  62. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/closures_template.h +0 -277
  63. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/osl.h +0 -287
  64. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/services_gpu.h +0 -1327
  65. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/osl/types.h +0 -157
  66. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/lcg.h +0 -53
  67. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/mapping.h +0 -251
  68. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/mis.h +0 -41
  69. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/pattern.h +0 -188
  70. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/sobol_burley.h +0 -203
  71. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/tabulated_sobol.h +0 -178
  72. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/sample/util.h +0 -79
  73. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ao.h +0 -148
  74. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/aov.h +0 -49
  75. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/attribute.h +0 -326
  76. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/bevel.h +0 -334
  77. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/blackbody.h +0 -35
  78. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/brick.h +0 -147
  79. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/brightness.h +0 -32
  80. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/bump.h +0 -72
  81. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/camera.h +0 -42
  82. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/checker.h +0 -54
  83. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/clamp.h +0 -40
  84. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/closure.h +0 -1559
  85. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/color_util.h +0 -409
  86. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/convert.h +0 -66
  87. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/displace.h +0 -240
  88. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/fractal_noise.h +0 -550
  89. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/fresnel.h +0 -80
  90. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gabor.h +0 -392
  91. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gamma.h +0 -27
  92. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/geometry.h +0 -280
  93. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/gradient.h +0 -80
  94. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/hsv.h +0 -54
  95. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ies.h +0 -38
  96. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/image.h +0 -273
  97. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/invert.h +0 -33
  98. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/light_path.h +0 -150
  99. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/magic.h +0 -132
  100. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/map_range.h +0 -164
  101. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mapping.h +0 -74
  102. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mapping_util.h +0 -37
  103. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/math.h +0 -73
  104. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/math_util.h +0 -278
  105. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/mix.h +0 -125
  106. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/node_types_template.h +0 -115
  107. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/noise.h +0 -761
  108. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/noisetex.h +0 -370
  109. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/normal.h +0 -38
  110. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/radial_tiling.h +0 -81
  111. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/radial_tiling_shared.h +0 -1179
  112. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ramp.h +0 -185
  113. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/ramp_util.h +0 -80
  114. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sepcomb_color.h +0 -62
  115. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sepcomb_vector.h +0 -45
  116. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/sky.h +0 -309
  117. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/svm.h +0 -492
  118. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/tex_coord.h +0 -506
  119. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/types.h +0 -530
  120. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/util.h +0 -160
  121. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/value.h +0 -34
  122. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vector_rotate.h +0 -79
  123. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vector_transform.h +0 -130
  124. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/vertex_color.h +0 -107
  125. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/voronoi.h +0 -1248
  126. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wave.h +0 -137
  127. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wavelength.h +0 -36
  128. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/white_noise.h +0 -74
  129. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/svm/wireframe.h +0 -116
  130. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/tables.h +0 -124
  131. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/types.h +0 -1923
  132. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/colorspace.h +0 -54
  133. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/differential.h +0 -169
  134. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/ies.h +0 -145
  135. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/lookup_table.h +0 -74
  136. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/nanovdb.h +0 -436
  137. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/profiler.h +0 -28
  138. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/kernel/util/texture_3d.h +0 -232
  139. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/atomic.h +0 -315
  140. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/color.h +0 -439
  141. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/defines.h +0 -131
  142. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/guiding.h +0 -40
  143. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/half.h +0 -178
  144. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/hash.h +0 -650
  145. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math.h +0 -24
  146. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_base.h +0 -953
  147. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_dual.h +0 -59
  148. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_fast.h +0 -650
  149. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float2.h +0 -274
  150. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float3.h +0 -847
  151. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float4.h +0 -666
  152. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_float8.h +0 -471
  153. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int2.h +0 -59
  154. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int3.h +0 -117
  155. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int4.h +0 -296
  156. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_int8.h +0 -353
  157. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/math_intersect.h +0 -452
  158. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/projection.h +0 -308
  159. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/projection_inverse.h +0 -95
  160. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/rect.h +0 -61
  161. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/static_assert.h +0 -21
  162. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/texture.h +0 -100
  163. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/transform.h +0 -650
  164. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types.h +0 -32
  165. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_base.h +0 -94
  166. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_dual.h +0 -134
  167. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float2.h +0 -71
  168. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float3.h +0 -200
  169. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float4.h +0 -134
  170. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_float8.h +0 -134
  171. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int2.h +0 -44
  172. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int3.h +0 -158
  173. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int4.h +0 -91
  174. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_int8.h +0 -94
  175. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_rgbe.h +0 -109
  176. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_spectrum.h +0 -28
  177. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar2.h +0 -39
  178. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar3.h +0 -39
  179. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uchar4.h +0 -45
  180. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint2.h +0 -37
  181. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint3.h +0 -91
  182. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_uint4.h +0 -37
  183. package/staging_area/Blender/5.0/scripts/addons_core/cycles/source/util/types_ushort4.h +0 -19
  184. package/staging_area/Blender/5.0/scripts/addons_core/cycles/ui.py +0 -2645
  185. package/staging_area/Blender/5.0/scripts/addons_core/cycles/version_update.py +0 -330
  186. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/__init__.py +0 -33
  187. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/engine.py +0 -47
  188. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/properties.py +0 -62
  189. package/staging_area/Blender/5.0/scripts/addons_core/hydra_storm/ui.py +0 -280
  190. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/__init__.py +0 -397
  191. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/__pycache__/__init__.cpython-311.pyc +0 -0
  192. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/export_bvh.py +0 -294
  193. package/staging_area/Blender/5.0/scripts/addons_core/io_anim_bvh/import_bvh.py +0 -795
  194. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/__init__.py +0 -115
  195. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/__pycache__/__init__.cpython-311.pyc +0 -0
  196. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/import_svg.py +0 -1911
  197. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_colors.py +0 -153
  198. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_util.py +0 -107
  199. package/staging_area/Blender/5.0/scripts/addons_core/io_curve_svg/svg_util_test.py +0 -166
  200. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/__init__.py +0 -302
  201. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/__pycache__/__init__.cpython-311.pyc +0 -0
  202. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_eps.py +0 -82
  203. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_png.py +0 -119
  204. package/staging_area/Blender/5.0/scripts/addons_core/io_mesh_uv_layout/export_uv_svg.py +0 -54
  205. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/__init__.py +0 -740
  206. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/__pycache__/__init__.cpython-311.pyc +0 -0
  207. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/data_types.py +0 -62
  208. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/encode_bin.py +0 -434
  209. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/export_fbx_bin.py +0 -3819
  210. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx2json.py +0 -341
  211. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx_utils.py +0 -1931
  212. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/fbx_utils_threading.py +0 -194
  213. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/import_fbx.py +0 -4045
  214. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/json2fbx.py +0 -165
  215. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_fbx/parse_fbx.py +0 -274
  216. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/__init__.py +0 -2250
  217. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/__pycache__/__init__.cpython-311.pyc +0 -0
  218. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/__init__.py +0 -3
  219. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/__pycache__/__init__.cpython-311.pyc +0 -0
  220. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/blender_default.cpython-311.pyc +0 -0
  221. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/conversion.cpython-311.pyc +0 -0
  222. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/data_path.cpython-311.pyc +0 -0
  223. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/extras.cpython-311.pyc +0 -0
  224. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_math.cpython-311.pyc +0 -0
  225. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_ui.cpython-311.pyc +0 -0
  226. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/gltf2_blender_utils.cpython-311.pyc +0 -0
  227. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/json_util.cpython-311.pyc +0 -0
  228. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/__pycache__/material_helpers.cpython-311.pyc +0 -0
  229. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/blender_default.py +0 -15
  230. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/conversion.py +0 -229
  231. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/data_path.py +0 -110
  232. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/extras.py +0 -89
  233. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_math.py +0 -209
  234. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_ui.py +0 -751
  235. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/gltf2_blender_utils.py +0 -70
  236. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/json_util.py +0 -27
  237. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/com/material_helpers.py +0 -32
  238. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/__pycache__/cache.cpython-311.pyc +0 -0
  239. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/__pycache__/sampler.cpython-311.pyc +0 -0
  240. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/accessors.py +0 -189
  241. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/action.py +0 -1062
  242. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/anim_utils.py +0 -321
  243. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/animations.py +0 -22
  244. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/drivers.py +0 -83
  245. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/animation.py +0 -35
  246. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/channel_target.py +0 -53
  247. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/channels.py +0 -378
  248. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/keyframes.py +0 -207
  249. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/fcurves/sampler.py +0 -231
  250. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/keyframes.py +0 -127
  251. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/action_sampled.py +0 -55
  252. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/channel_target.py +0 -54
  253. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/channels.py +0 -236
  254. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/keyframes.py +0 -95
  255. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/armature/sampler.py +0 -230
  256. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/channel_target.py +0 -48
  257. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/channels.py +0 -118
  258. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/keyframes.py +0 -152
  259. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/data/sampler.py +0 -135
  260. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/action_sampled.py +0 -58
  261. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/channel_target.py +0 -51
  262. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/channels.py +0 -136
  263. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/keyframes.py +0 -88
  264. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/object/sampler.py +0 -171
  265. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/sampling_cache.py +0 -754
  266. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/action_sampled.py +0 -43
  267. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/channel_target.py +0 -38
  268. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/channels.py +0 -79
  269. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/keyframes.py +0 -145
  270. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/sampled/shapekeys/sampler.py +0 -111
  271. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/scene_animation.py +0 -244
  272. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/animation/tracks.py +0 -846
  273. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/cache.py +0 -182
  274. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/cameras.py +0 -152
  275. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/export.py +0 -412
  276. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/exporter.py +0 -536
  277. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/gather.py +0 -157
  278. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/joints.py +0 -110
  279. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/light_spots.py +0 -47
  280. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/lights.py +0 -212
  281. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/encode_image.cpython-311.pyc +0 -0
  282. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/image.cpython-311.pyc +0 -0
  283. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/search_node_tree.cpython-311.pyc +0 -0
  284. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/texture.cpython-311.pyc +0 -0
  285. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/texture_info.cpython-311.pyc +0 -0
  286. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/__pycache__/unlit.cpython-311.pyc +0 -0
  287. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/encode_image.py +0 -491
  288. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/anisotropy.py +0 -259
  289. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/clearcoat.py +0 -156
  290. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/emission.py +0 -115
  291. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/ior.py +0 -45
  292. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/sheen.py +0 -129
  293. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/specular.py +0 -140
  294. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/transmission.py +0 -76
  295. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/variants.py +0 -19
  296. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/extensions/volume.py +0 -118
  297. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/image.py +0 -514
  298. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/material_utils.py +0 -13
  299. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/material_viewport.py +0 -32
  300. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/materials.py +0 -714
  301. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/pbr_metallic_roughness.py +0 -257
  302. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/search_node_tree.py +0 -1120
  303. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/texture.py +0 -248
  304. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/texture_info.py +0 -291
  305. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/material/unlit.py +0 -191
  306. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/mesh.py +0 -160
  307. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/nodes.py +0 -577
  308. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitive_attributes.py +0 -252
  309. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitive_extract.py +0 -1662
  310. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/primitives.py +0 -366
  311. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/sampler.py +0 -187
  312. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/skins.py +0 -148
  313. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/exp/tree.py +0 -976
  314. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_anisotropy.py +0 -116
  315. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_pbrSpecularGlossiness.py +0 -203
  316. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/KHR_materials_unlit.py +0 -56
  317. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_anisotropy.cpython-311.pyc +0 -0
  318. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_pbrSpecularGlossiness.cpython-311.pyc +0 -0
  319. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/KHR_materials_unlit.cpython-311.pyc +0 -0
  320. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation.cpython-311.pyc +0 -0
  321. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_node.cpython-311.pyc +0 -0
  322. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_pointer.cpython-311.pyc +0 -0
  323. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_utils.cpython-311.pyc +0 -0
  324. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/animation_weight.cpython-311.pyc +0 -0
  325. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/blender_gltf.cpython-311.pyc +0 -0
  326. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/camera.cpython-311.pyc +0 -0
  327. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/draco_compression_extension.cpython-311.pyc +0 -0
  328. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/image.cpython-311.pyc +0 -0
  329. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/light.cpython-311.pyc +0 -0
  330. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/material.cpython-311.pyc +0 -0
  331. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/material_utils.cpython-311.pyc +0 -0
  332. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/mesh.cpython-311.pyc +0 -0
  333. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/node.cpython-311.pyc +0 -0
  334. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/pbrMetallicRoughness.cpython-311.pyc +0 -0
  335. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/scene.cpython-311.pyc +0 -0
  336. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/texture.cpython-311.pyc +0 -0
  337. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/__pycache__/vnode.cpython-311.pyc +0 -0
  338. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation.py +0 -170
  339. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_node.py +0 -170
  340. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_pointer.py +0 -787
  341. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_utils.py +0 -174
  342. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/animation_weight.py +0 -95
  343. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/blender_gltf.py +0 -633
  344. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/camera.py +0 -75
  345. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/draco_compression_extension.py +0 -138
  346. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/image.py +0 -102
  347. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/light.py +0 -143
  348. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/material.py +0 -113
  349. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/material_utils.py +0 -196
  350. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/mesh.py +0 -920
  351. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/node.py +0 -348
  352. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/pbrMetallicRoughness.py +0 -903
  353. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/scene.py +0 -133
  354. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/texture.py +0 -233
  355. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/blender/imp/vnode.py +0 -661
  356. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/extern_draco.dll +0 -0
  357. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/__init__.py +0 -5
  358. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/__pycache__/__init__.cpython-311.pyc +0 -0
  359. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/constants.cpython-311.pyc +0 -0
  360. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/debug.cpython-311.pyc +0 -0
  361. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/draco.cpython-311.pyc +0 -0
  362. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/gltf2_io.cpython-311.pyc +0 -0
  363. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/gltf2_io_extensions.cpython-311.pyc +0 -0
  364. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/__pycache__/path.cpython-311.pyc +0 -0
  365. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/constants.py +0 -159
  366. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/debug.py +0 -129
  367. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/draco.py +0 -46
  368. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/gltf2_io.py +0 -1217
  369. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/gltf2_io_extensions.py +0 -30
  370. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/lights_punctual.py +0 -68
  371. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/path.py +0 -19
  372. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/com/variants.py +0 -32
  373. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/binary_data.cpython-311.pyc +0 -0
  374. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/image_data.cpython-311.pyc +0 -0
  375. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/__pycache__/user_extensions.cpython-311.pyc +0 -0
  376. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/binary_data.py +0 -35
  377. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/buffer.py +0 -54
  378. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/draco.py +0 -174
  379. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/export.py +0 -122
  380. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/image_data.py +0 -80
  381. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/exp/user_extensions.py +0 -17
  382. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__init__.py +0 -5
  383. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/__init__.cpython-311.pyc +0 -0
  384. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/gltf2_io_binary.cpython-311.pyc +0 -0
  385. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/gltf2_io_gltf.cpython-311.pyc +0 -0
  386. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/__pycache__/user_extensions.cpython-311.pyc +0 -0
  387. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/gltf2_io_binary.py +0 -215
  388. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/gltf2_io_gltf.py +0 -198
  389. package/staging_area/Blender/5.0/scripts/addons_core/io_scene_gltf2/io/imp/user_extensions.py +0 -13
  390. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/README.md +0 -5
  391. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/__init__.py +0 -64
  392. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/interface.py +0 -526
  393. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/operators.py +0 -2421
  394. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/preferences.py +0 -398
  395. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/constants.py +0 -192
  396. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/draw.py +0 -219
  397. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/nodes.py +0 -299
  398. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/paths.py +0 -169
  399. package/staging_area/Blender/5.0/scripts/addons_core/node_wrangler/utils/paths_test.py +0 -290
  400. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__init__.py +0 -56
  401. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/__init__.cpython-311.pyc +0 -0
  402. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/asset_browser.cpython-311.pyc +0 -0
  403. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/functions.cpython-311.pyc +0 -0
  404. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/gui.cpython-311.pyc +0 -0
  405. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/keymaps.cpython-311.pyc +0 -0
  406. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/operators.cpython-311.pyc +0 -0
  407. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/pose_creation.cpython-311.pyc +0 -0
  408. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/__pycache__/pose_usage.cpython-311.pyc +0 -0
  409. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/asset_browser.py +0 -99
  410. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/functions.py +0 -57
  411. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/gui.py +0 -229
  412. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/keymaps.py +0 -29
  413. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/operators.py +0 -299
  414. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/pose_creation.py +0 -413
  415. package/staging_area/Blender/5.0/scripts/addons_core/pose_library/pose_usage.py +0 -85
  416. package/staging_area/Blender/5.0/scripts/addons_core/rigify/__init__.py +0 -907
  417. package/staging_area/Blender/5.0/scripts/addons_core/rigify/base_generate.py +0 -536
  418. package/staging_area/Blender/5.0/scripts/addons_core/rigify/base_rig.py +0 -351
  419. package/staging_area/Blender/5.0/scripts/addons_core/rigify/feature_set_list.py +0 -357
  420. package/staging_area/Blender/5.0/scripts/addons_core/rigify/feature_sets/__init__.py +0 -16
  421. package/staging_area/Blender/5.0/scripts/addons_core/rigify/generate.py +0 -762
  422. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarig_menu.py +0 -271
  423. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/__init__.py +0 -0
  424. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/bird.py +0 -1397
  425. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/cat.py +0 -2854
  426. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/horse.py +0 -1401
  427. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/shark.py +0 -692
  428. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Animals/wolf.py +0 -3088
  429. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Basic/basic_human.py +0 -618
  430. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/Basic/basic_quadruped.py +0 -715
  431. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/__init__.py +0 -0
  432. package/staging_area/Blender/5.0/scripts/addons_core/rigify/metarigs/human.py +0 -2625
  433. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/__init__.py +0 -34
  434. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/action_layers.py +0 -658
  435. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/copy_mirror_parameters.py +0 -316
  436. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/generic_ui_list.py +0 -191
  437. package/staging_area/Blender/5.0/scripts/addons_core/rigify/operators/upgrade_face.py +0 -457
  438. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rig_lists.py +0 -116
  439. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rig_ui_template.py +0 -1445
  440. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/__init__.py +0 -0
  441. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/__init__.py +0 -0
  442. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/copy_chain.py +0 -167
  443. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/pivot.py +0 -242
  444. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/raw_copy.py +0 -228
  445. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/basic/super_copy.py +0 -191
  446. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/chain_rigs.py +0 -388
  447. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/experimental/__init__.py +0 -0
  448. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/experimental/super_chain.py +0 -853
  449. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/basic_tongue.py +0 -195
  450. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/skin_eye.py +0 -843
  451. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/face/skin_jaw.py +0 -880
  452. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/faces/__init__.py +0 -0
  453. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/faces/super_face.py +0 -2378
  454. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/__init__.py +0 -0
  455. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/arm.py +0 -209
  456. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/front_paw.py +0 -270
  457. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/leg.py +0 -746
  458. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/limb_rigs.py +0 -1287
  459. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/limb_utils.py +0 -78
  460. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/paw.py +0 -360
  461. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/rear_paw.py +0 -172
  462. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/simple_tentacle.py +0 -169
  463. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/spline_tentacle.py +0 -1486
  464. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_finger.py +0 -699
  465. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_limb.py +0 -46
  466. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/limbs/super_palm.py +0 -426
  467. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/anchor.py +0 -142
  468. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/basic_chain.py +0 -565
  469. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/glue.py +0 -325
  470. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_nodes.py +0 -604
  471. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_parents.py +0 -505
  472. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/skin_rigs.py +0 -250
  473. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/stretchy_chain.py +0 -422
  474. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/skin/transform/basic.py +0 -141
  475. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/__init__.py +0 -0
  476. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/basic_spine.py +0 -387
  477. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/basic_tail.py +0 -242
  478. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/spine_rigs.py +0 -295
  479. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/super_head.py +0 -424
  480. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/spines/super_spine.py +0 -150
  481. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/utils.py +0 -175
  482. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rigs/widgets.py +0 -483
  483. package/staging_area/Blender/5.0/scripts/addons_core/rigify/rot_mode.py +0 -311
  484. package/staging_area/Blender/5.0/scripts/addons_core/rigify/ui.py +0 -1834
  485. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/__init__.py +0 -40
  486. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/action_layers.py +0 -454
  487. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/animation.py +0 -1024
  488. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/bones.py +0 -742
  489. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/collections.py +0 -83
  490. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/components.py +0 -102
  491. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/errors.py +0 -28
  492. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/layers.py +0 -396
  493. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/mechanism.py +0 -669
  494. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/metaclass.py +0 -170
  495. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/misc.py +0 -533
  496. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/naming.py +0 -366
  497. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/node_merger.py +0 -345
  498. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/objects.py +0 -206
  499. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/rig.py +0 -747
  500. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/switch_parent.py +0 -533
  501. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets.py +0 -531
  502. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets_basic.py +0 -305
  503. package/staging_area/Blender/5.0/scripts/addons_core/rigify/utils/widgets_special.py +0 -226
  504. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/__init__.py +0 -60
  505. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/settings.py +0 -194
  506. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_addon.py +0 -378
  507. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_repo.py +0 -248
  508. package/staging_area/Blender/5.0/scripts/addons_core/ui_translate/update_ui.py +0 -267
  509. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/__init__.py +0 -55
  510. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/action_map.py +0 -177
  511. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/action_map_io.py +0 -346
  512. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/configs/default.py +0 -434
  513. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/defaults.py +0 -1587
  514. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/gui.py +0 -295
  515. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/operators.py +0 -540
  516. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/preferences.py +0 -67
  517. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/properties.py +0 -228
  518. package/staging_area/Blender/5.0/scripts/addons_core/viewport_vr_preview/versioning.py +0 -38
  519. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/__init__.py +0 -14
  520. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/chainingiterators.py +0 -644
  521. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/functions.py +0 -313
  522. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/predicates.py +0 -670
  523. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/shaders.py +0 -1248
  524. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/types.py +0 -159
  525. package/staging_area/Blender/5.0/scripts/freestyle/modules/freestyle/utils.py +0 -541
  526. package/staging_area/Blender/5.0/scripts/freestyle/modules/parameter_editor.py +0 -1589
  527. package/staging_area/Blender/5.0/scripts/freestyle/styles/anisotropic_diffusion.py +0 -41
  528. package/staging_area/Blender/5.0/scripts/freestyle/styles/apriori_and_causal_density.py +0 -34
  529. package/staging_area/Blender/5.0/scripts/freestyle/styles/apriori_density.py +0 -33
  530. package/staging_area/Blender/5.0/scripts/freestyle/styles/backbone_stretcher.py +0 -28
  531. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_circles.py +0 -39
  532. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_ellipses.py +0 -39
  533. package/staging_area/Blender/5.0/scripts/freestyle/styles/blueprint_squares.py +0 -40
  534. package/staging_area/Blender/5.0/scripts/freestyle/styles/cartoon.py +0 -32
  535. package/staging_area/Blender/5.0/scripts/freestyle/styles/contour.py +0 -33
  536. package/staging_area/Blender/5.0/scripts/freestyle/styles/curvature2d.py +0 -29
  537. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour.py +0 -33
  538. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour_sketchy.py +0 -39
  539. package/staging_area/Blender/5.0/scripts/freestyle/styles/external_contour_smooth.py +0 -37
  540. package/staging_area/Blender/5.0/scripts/freestyle/styles/haloing.py +0 -43
  541. package/staging_area/Blender/5.0/scripts/freestyle/styles/ignore_small_occlusions.py +0 -30
  542. package/staging_area/Blender/5.0/scripts/freestyle/styles/invisible_lines.py +0 -32
  543. package/staging_area/Blender/5.0/scripts/freestyle/styles/japanese_bigbrush.py +0 -53
  544. package/staging_area/Blender/5.0/scripts/freestyle/styles/long_anisotropically_dense.py +0 -67
  545. package/staging_area/Blender/5.0/scripts/freestyle/styles/multiple_parameterization.py +0 -41
  546. package/staging_area/Blender/5.0/scripts/freestyle/styles/nature.py +0 -32
  547. package/staging_area/Blender/5.0/scripts/freestyle/styles/near_lines.py +0 -32
  548. package/staging_area/Blender/5.0/scripts/freestyle/styles/occluded_by_specific_object.py +0 -36
  549. package/staging_area/Blender/5.0/scripts/freestyle/styles/polygonalize.py +0 -32
  550. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi0.py +0 -31
  551. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi0_not_external_contour.py +0 -38
  552. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi1.py +0 -32
  553. package/staging_area/Blender/5.0/scripts/freestyle/styles/qi2.py +0 -32
  554. package/staging_area/Blender/5.0/scripts/freestyle/styles/sequentialsplit_sketchy.py +0 -39
  555. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_multiple_parameterization.py +0 -37
  556. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_topology_broken.py +0 -39
  557. package/staging_area/Blender/5.0/scripts/freestyle/styles/sketchy_topology_preserved.py +0 -36
  558. package/staging_area/Blender/5.0/scripts/freestyle/styles/split_at_highest_2d_curvatures.py +0 -34
  559. package/staging_area/Blender/5.0/scripts/freestyle/styles/split_at_tvertices.py +0 -33
  560. package/staging_area/Blender/5.0/scripts/freestyle/styles/suggestive.py +0 -33
  561. package/staging_area/Blender/5.0/scripts/freestyle/styles/thickness_fof_depth_discontinuity.py +0 -32
  562. package/staging_area/Blender/5.0/scripts/freestyle/styles/tipremover.py +0 -32
  563. package/staging_area/Blender/5.0/scripts/freestyle/styles/tvertex_remover.py +0 -32
  564. package/staging_area/Blender/5.0/scripts/freestyle/styles/uniformpruning_zsort.py +0 -31
  565. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_bpy_restrict_state.cpython-311.pyc +0 -0
  566. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_bpy_types.cpython-311.pyc +0 -0
  567. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_console_python.cpython-311.pyc +0 -0
  568. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_keyingsets_utils.cpython-311.pyc +0 -0
  569. package/staging_area/Blender/5.0/scripts/modules/__pycache__/_rna_xml.cpython-311.pyc +0 -0
  570. package/staging_area/Blender/5.0/scripts/modules/__pycache__/addon_utils.cpython-311.pyc +0 -0
  571. package/staging_area/Blender/5.0/scripts/modules/__pycache__/bl_app_template_utils.cpython-311.pyc +0 -0
  572. package/staging_area/Blender/5.0/scripts/modules/__pycache__/nodeitems_utils.cpython-311.pyc +0 -0
  573. package/staging_area/Blender/5.0/scripts/modules/__pycache__/rna_keymap_ui.cpython-311.pyc +0 -0
  574. package/staging_area/Blender/5.0/scripts/modules/__pycache__/rna_prop_ui.cpython-311.pyc +0 -0
  575. package/staging_area/Blender/5.0/scripts/modules/_animsys_refactor.py +0 -230
  576. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/__init__.py +0 -7
  577. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/__init__.py +0 -7
  578. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_calltip.py +0 -174
  579. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_import.py +0 -180
  580. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/complete_namespace.py +0 -192
  581. package/staging_area/Blender/5.0/scripts/modules/_bl_console_utils/autocomplete/intellisense.py +0 -138
  582. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/__init__.py +0 -5
  583. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/bl_extract_messages.py +0 -1363
  584. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/merge_po.py +0 -132
  585. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/settings.py +0 -824
  586. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/settings_user.py +0 -7
  587. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils.py +0 -1709
  588. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_cli.py +0 -144
  589. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_languages_menu.py +0 -68
  590. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_rtl.py +0 -179
  591. package/staging_area/Blender/5.0/scripts/modules/_bl_i18n_utils/utils_spell_check.py +0 -955
  592. package/staging_area/Blender/5.0/scripts/modules/_bl_previews_utils/bl_previews_render.py +0 -537
  593. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__init__.py +0 -0
  594. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  595. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/__pycache__/data_path.cpython-311.pyc +0 -0
  596. package/staging_area/Blender/5.0/scripts/modules/_bl_rna_utils/data_path.py +0 -76
  597. package/staging_area/Blender/5.0/scripts/modules/_bl_text_utils/__init__.py +0 -0
  598. package/staging_area/Blender/5.0/scripts/modules/_bl_text_utils/external_editor.py +0 -54
  599. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__init__.py +0 -0
  600. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  601. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/__pycache__/layout.cpython-311.pyc +0 -0
  602. package/staging_area/Blender/5.0/scripts/modules/_bl_ui_utils/layout.py +0 -21
  603. package/staging_area/Blender/5.0/scripts/modules/_blendfile_header.py +0 -234
  604. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/__init__.py +0 -3
  605. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/__pycache__/__init__.cpython-311.pyc +0 -0
  606. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/addons/__init__.py +0 -3
  607. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/addons/cli.py +0 -42
  608. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/__init__.py +0 -3
  609. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/__init__.py +0 -3
  610. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/blender_asset_library_openapi.py +0 -98
  611. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/assets/remote_library_listing/blender_asset_library_openapi.yaml +0 -83
  612. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__init__.py +0 -3
  613. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/__init__.cpython-311.pyc +0 -0
  614. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/junction_module.cpython-311.pyc +0 -0
  615. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/__pycache__/wheel_manager.cpython-311.pyc +0 -0
  616. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/junction_module.py +0 -165
  617. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/permissions.py +0 -16
  618. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/stale_file_manager.py +0 -417
  619. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/tags.py +0 -54
  620. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/extensions/wheel_manager.py +0 -686
  621. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/freedesktop.py +0 -598
  622. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/grease_pencil/__init__.py +0 -3
  623. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/grease_pencil/stroke.py +0 -402
  624. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/http/__init__.py +0 -3
  625. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/http/downloader.py +0 -1348
  626. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/text_generate_runtime.py +0 -256
  627. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/url_prefill_runtime.py +0 -60
  628. package/staging_area/Blender/5.0/scripts/modules/_bpy_internal/system_info/url_prefill_startup.py +0 -107
  629. package/staging_area/Blender/5.0/scripts/modules/_bpy_restrict_state.py +0 -50
  630. package/staging_area/Blender/5.0/scripts/modules/_bpy_types.py +0 -1563
  631. package/staging_area/Blender/5.0/scripts/modules/_console_python.py +0 -368
  632. package/staging_area/Blender/5.0/scripts/modules/_console_shell.py +0 -73
  633. package/staging_area/Blender/5.0/scripts/modules/_graphviz_export.py +0 -194
  634. package/staging_area/Blender/5.0/scripts/modules/_keyingsets_utils.py +0 -355
  635. package/staging_area/Blender/5.0/scripts/modules/_rna_info.py +0 -984
  636. package/staging_area/Blender/5.0/scripts/modules/_rna_manual_reference.py +0 -4446
  637. package/staging_area/Blender/5.0/scripts/modules/_rna_xml.py +0 -422
  638. package/staging_area/Blender/5.0/scripts/modules/addon_utils.py +0 -1992
  639. package/staging_area/Blender/5.0/scripts/modules/bl_app_override/__init__.py +0 -211
  640. package/staging_area/Blender/5.0/scripts/modules/bl_app_override/helpers.py +0 -153
  641. package/staging_area/Blender/5.0/scripts/modules/bl_app_template_utils.py +0 -177
  642. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__init__.py +0 -9
  643. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/__init__.cpython-311.pyc +0 -0
  644. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/io.cpython-311.pyc +0 -0
  645. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/keymap_from_toolbar.cpython-311.pyc +0 -0
  646. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/__pycache__/keymap_hierarchy.cpython-311.pyc +0 -0
  647. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/io.py +0 -308
  648. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/keymap_from_toolbar.py +0 -394
  649. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/keymap_hierarchy.py +0 -247
  650. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/platform_helpers.py +0 -55
  651. package/staging_area/Blender/5.0/scripts/modules/bl_keymap_utils/versioning.py +0 -328
  652. package/staging_area/Blender/5.0/scripts/modules/blend_render_info.py +0 -123
  653. package/staging_area/Blender/5.0/scripts/modules/bpy/__init__.py +0 -75
  654. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/__init__.cpython-311.pyc +0 -0
  655. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/ops.cpython-311.pyc +0 -0
  656. package/staging_area/Blender/5.0/scripts/modules/bpy/__pycache__/path.cpython-311.pyc +0 -0
  657. package/staging_area/Blender/5.0/scripts/modules/bpy/ops.py +0 -184
  658. package/staging_area/Blender/5.0/scripts/modules/bpy/path.py +0 -459
  659. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__init__.py +0 -1382
  660. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__pycache__/__init__.cpython-311.pyc +0 -0
  661. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/__pycache__/previews.cpython-311.pyc +0 -0
  662. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/previews.py +0 -136
  663. package/staging_area/Blender/5.0/scripts/modules/bpy/utils/toolsystem.py +0 -11
  664. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__init__.py +0 -20
  665. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/__init__.cpython-311.pyc +0 -0
  666. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/asset_utils.cpython-311.pyc +0 -0
  667. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/io_utils.cpython-311.pyc +0 -0
  668. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/node_utils.cpython-311.pyc +0 -0
  669. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/__pycache__/object_utils.cpython-311.pyc +0 -0
  670. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/anim_utils.py +0 -1038
  671. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/asset_utils.py +0 -50
  672. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/bmesh_utils.py +0 -56
  673. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/id_map_utils.py +0 -53
  674. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/image_utils.py +0 -194
  675. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/io_utils.py +0 -620
  676. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/keyconfig_utils.py +0 -141
  677. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/mesh_utils.py +0 -464
  678. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/node_shader_utils.py +0 -829
  679. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/node_utils.py +0 -88
  680. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/object_utils.py +0 -289
  681. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/view3d_utils.py +0 -181
  682. package/staging_area/Blender/5.0/scripts/modules/bpy_extras/wm_utils/progress_report.py +0 -160
  683. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__init__.py +0 -8
  684. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__pycache__/__init__.cpython-311.pyc +0 -0
  685. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/__pycache__/presets.cpython-311.pyc +0 -0
  686. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/batch.py +0 -80
  687. package/staging_area/Blender/5.0/scripts/modules/gpu_extras/presets.py +0 -102
  688. package/staging_area/Blender/5.0/scripts/modules/nodeitems_utils.py +0 -178
  689. package/staging_area/Blender/5.0/scripts/modules/rna_keymap_ui.py +0 -505
  690. package/staging_area/Blender/5.0/scripts/modules/rna_prop_ui.py +0 -269
  691. package/staging_area/Blender/5.0/scripts/presets/camera/1_inch.py +0 -4
  692. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_1.8_inch.py +0 -4
  693. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.3_inch.py +0 -4
  694. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.5_inch.py +0 -4
  695. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_2.7_inch.py +0 -4
  696. package/staging_area/Blender/5.0/scripts/presets/camera/1_slash_3.2_inch.py +0 -4
  697. package/staging_area/Blender/5.0/scripts/presets/camera/2_slash_3_inch.py +0 -4
  698. package/staging_area/Blender/5.0/scripts/presets/camera/APS-C.py +0 -4
  699. package/staging_area/Blender/5.0/scripts/presets/camera/APS-C_(Canon).py +0 -4
  700. package/staging_area/Blender/5.0/scripts/presets/camera/APS-H_(Canon).py +0 -4
  701. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_16mm.py +0 -4
  702. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_35mm.py +0 -4
  703. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_65mm.py +0 -4
  704. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_IMAX.py +0 -4
  705. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_Super_16.py +0 -4
  706. package/staging_area/Blender/5.0/scripts/presets/camera/Analog_Super_35.py +0 -4
  707. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_65.py +0 -4
  708. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_LF.py +0 -4
  709. package/staging_area/Blender/5.0/scripts/presets/camera/Arri_Alexa_Mini_&_SXT.py +0 -4
  710. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_&_Studio.py +0 -4
  711. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_4K.py +0 -4
  712. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_Pocket_6k.py +0 -4
  713. package/staging_area/Blender/5.0/scripts/presets/camera/Blackmagic_URSA_4.6K.py +0 -4
  714. package/staging_area/Blender/5.0/scripts/presets/camera/Foveon_(Sigma).py +0 -4
  715. package/staging_area/Blender/5.0/scripts/presets/camera/Fullframe.py +0 -4
  716. package/staging_area/Blender/5.0/scripts/presets/camera/MFT.py +0 -4
  717. package/staging_area/Blender/5.0/scripts/presets/camera/Medium-format_(Hasselblad).py +0 -4
  718. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Dragon_5K.py +0 -4
  719. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Dragon_6K.py +0 -4
  720. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Helium_8K.py +0 -4
  721. package/staging_area/Blender/5.0/scripts/presets/camera/RED_Monstro_8K.py +0 -4
  722. package/staging_area/Blender/5.0/scripts/presets/cloth/Cotton.py +0 -25
  723. package/staging_area/Blender/5.0/scripts/presets/cloth/Denim.py +0 -25
  724. package/staging_area/Blender/5.0/scripts/presets/cloth/Leather.py +0 -25
  725. package/staging_area/Blender/5.0/scripts/presets/cloth/Rubber.py +0 -25
  726. package/staging_area/Blender/5.0/scripts/presets/cloth/Silk.py +0 -25
  727. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_A.py +0 -5
  728. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_B.py +0 -5
  729. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_C.py +0 -5
  730. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D50.py +0 -5
  731. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D55.py +0 -5
  732. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D65.py +0 -5
  733. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D75.py +0 -5
  734. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_D93.py +0 -5
  735. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_E.py +0 -5
  736. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F1.py +0 -5
  737. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F10.py +0 -5
  738. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F11.py +0 -5
  739. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F12.py +0 -5
  740. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F2.py +0 -5
  741. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F3.py +0 -5
  742. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F4.py +0 -5
  743. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F5.py +0 -5
  744. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F6.py +0 -5
  745. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F7.py +0 -5
  746. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F8.py +0 -5
  747. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_F9.py +0 -5
  748. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B1.py +0 -5
  749. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B2.py +0 -5
  750. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B3.py +0 -5
  751. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B4.py +0 -5
  752. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-B5.py +0 -5
  753. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-BH1.py +0 -5
  754. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-RGB1.py +0 -5
  755. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-V1.py +0 -5
  756. package/staging_area/Blender/5.0/scripts/presets/color_management/white_balance/Illuminant_LED-V2.py +0 -5
  757. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Default.py +0 -14
  758. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Direct_Light.py +0 -14
  759. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Fast_Global_Illumination.py +0 -14
  760. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Full_Global_Illumination.py +0 -14
  761. package/staging_area/Blender/5.0/scripts/presets/cycles/integrator/Limited_Global_Illumination.py +0 -14
  762. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Default.py +0 -11
  763. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Faster_Render.py +0 -11
  764. package/staging_area/Blender/5.0/scripts/presets/cycles/performance/Lower_Memory.py +0 -11
  765. package/staging_area/Blender/5.0/scripts/presets/cycles/sampling/Final.py +0 -12
  766. package/staging_area/Blender/5.0/scripts/presets/cycles/sampling/Preview.py +0 -12
  767. package/staging_area/Blender/5.0/scripts/presets/cycles/viewport_sampling/Final.py +0 -11
  768. package/staging_area/Blender/5.0/scripts/presets/cycles/viewport_sampling/Preview.py +0 -11
  769. package/staging_area/Blender/5.0/scripts/presets/eevee/raytracing/Default.py +0 -22
  770. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/DVD_(note_colon__this_changes_render_resolution).py +0 -24
  771. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_MP4.py +0 -18
  772. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_Matroska.py +0 -17
  773. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/H264_in_Matroska_for_scrubbing.py +0 -14
  774. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/Ogg_Theora.py +0 -18
  775. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/WebM_(VP9+Opus).py +0 -9
  776. package/staging_area/Blender/5.0/scripts/presets/ffmpeg/Xvid.py +0 -18
  777. package/staging_area/Blender/5.0/scripts/presets/fluid/Honey.py +0 -3
  778. package/staging_area/Blender/5.0/scripts/presets/fluid/Oil.py +0 -3
  779. package/staging_area/Blender/5.0/scripts/presets/fluid/Water.py +0 -3
  780. package/staging_area/Blender/5.0/scripts/presets/framerate/12.py +0 -3
  781. package/staging_area/Blender/5.0/scripts/presets/framerate/120.py +0 -3
  782. package/staging_area/Blender/5.0/scripts/presets/framerate/23.98.py +0 -3
  783. package/staging_area/Blender/5.0/scripts/presets/framerate/24.py +0 -3
  784. package/staging_area/Blender/5.0/scripts/presets/framerate/240.py +0 -3
  785. package/staging_area/Blender/5.0/scripts/presets/framerate/25.py +0 -3
  786. package/staging_area/Blender/5.0/scripts/presets/framerate/29.97.py +0 -3
  787. package/staging_area/Blender/5.0/scripts/presets/framerate/30.py +0 -3
  788. package/staging_area/Blender/5.0/scripts/presets/framerate/50.py +0 -3
  789. package/staging_area/Blender/5.0/scripts/presets/framerate/59.94.py +0 -3
  790. package/staging_area/Blender/5.0/scripts/presets/framerate/6.py +0 -3
  791. package/staging_area/Blender/5.0/scripts/presets/framerate/60.py +0 -3
  792. package/staging_area/Blender/5.0/scripts/presets/framerate/8.py +0 -3
  793. package/staging_area/Blender/5.0/scripts/presets/framerate/Custom.py +0 -1
  794. package/staging_area/Blender/5.0/scripts/presets/framerate/__pycache__/30.cpython-311.pyc +0 -0
  795. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Fill_Only.py +0 -25
  796. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Stroke_Only.py +0 -25
  797. package/staging_area/Blender/5.0/scripts/presets/gpencil_material/Stroke_and_Fill.py +0 -25
  798. package/staging_area/Blender/5.0/scripts/presets/hair_dynamics/Default.py +0 -17
  799. package/staging_area/Blender/5.0/scripts/presets/interface_theme/Blender_Dark.xml +0 -6
  800. package/staging_area/Blender/5.0/scripts/presets/interface_theme/Blender_Light.xml +0 -1246
  801. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Blender.py +0 -384
  802. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Blender_27x.py +0 -106
  803. package/staging_area/Blender/5.0/scripts/presets/keyconfig/Industry_Compatible.py +0 -41
  804. package/staging_area/Blender/5.0/scripts/presets/keyconfig/__pycache__/Blender.cpython-311.pyc +0 -0
  805. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/__pycache__/blender_default.cpython-311.pyc +0 -0
  806. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/blender_default.py +0 -9083
  807. package/staging_area/Blender/5.0/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py +0 -3896
  808. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Custom.py +0 -1
  809. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Centimeter.py +0 -2
  810. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Inch.py +0 -2
  811. package/staging_area/Blender/5.0/scripts/presets/pixel_density/Pixels_slash_Meter.py +0 -2
  812. package/staging_area/Blender/5.0/scripts/presets/render/4K_DCI_2160p.py +0 -8
  813. package/staging_area/Blender/5.0/scripts/presets/render/4K_UHDTV_2160p.py +0 -8
  814. package/staging_area/Blender/5.0/scripts/presets/render/4K_UW_1600p.py +0 -8
  815. package/staging_area/Blender/5.0/scripts/presets/render/DVCPRO_HD_1080p.py +0 -8
  816. package/staging_area/Blender/5.0/scripts/presets/render/DVCPRO_HD_720p.py +0 -8
  817. package/staging_area/Blender/5.0/scripts/presets/render/HDTV_1080p.py +0 -8
  818. package/staging_area/Blender/5.0/scripts/presets/render/HDTV_720p.py +0 -8
  819. package/staging_area/Blender/5.0/scripts/presets/render/HDV_1080p.py +0 -8
  820. package/staging_area/Blender/5.0/scripts/presets/render/HDV_NTSC_1080p.py +0 -8
  821. package/staging_area/Blender/5.0/scripts/presets/render/HDV_PAL_1080p.py +0 -8
  822. package/staging_area/Blender/5.0/scripts/presets/render/TV_NTSC_16_colon_9.py +0 -8
  823. package/staging_area/Blender/5.0/scripts/presets/render/TV_NTSC_4_colon_3.py +0 -8
  824. package/staging_area/Blender/5.0/scripts/presets/render/TV_PAL_16_colon_9.py +0 -8
  825. package/staging_area/Blender/5.0/scripts/presets/render/TV_PAL_4_colon_3.py +0 -8
  826. package/staging_area/Blender/5.0/scripts/presets/safe_areas/14_colon_9_in_16_colon_9.py +0 -7
  827. package/staging_area/Blender/5.0/scripts/presets/safe_areas/16_colon_9.py +0 -7
  828. package/staging_area/Blender/5.0/scripts/presets/safe_areas/4_colon_3_in_16_colon_9.py +0 -7
  829. package/staging_area/Blender/5.0/scripts/presets/text_editor/Internal.py +0 -6
  830. package/staging_area/Blender/5.0/scripts/presets/text_editor/Visual_Studio_Code.py +0 -12
  831. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_inch.py +0 -6
  832. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_1.8_inch.py +0 -6
  833. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.3_inch.py +0 -6
  834. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.5_inch.py +0 -6
  835. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_2.7_inch.py +0 -6
  836. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/1_slash_3.2_inch.py +0 -6
  837. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/2_slash_3_inch.py +0 -6
  838. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-C.py +0 -6
  839. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-C_(Canon).py +0 -6
  840. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/APS-H_(Canon).py +0 -6
  841. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_16mm.py +0 -6
  842. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_35mm.py +0 -6
  843. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_65mm.py +0 -6
  844. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_IMAX.py +0 -6
  845. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_Super_16.py +0 -6
  846. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Analog_Super_35.py +0 -6
  847. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_65.py +0 -6
  848. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_LF.py +0 -6
  849. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Arri_Alexa_Mini_&_SXT.py +0 -6
  850. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_&_Studio.py +0 -6
  851. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_4K.py +0 -6
  852. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_Pocket_6k.py +0 -6
  853. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Blackmagic_URSA_4.6K.py +0 -6
  854. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Foveon_(Sigma).py +0 -6
  855. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Fullframe.py +0 -6
  856. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/MFT.py +0 -6
  857. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/Medium-format_(Hasselblad).py +0 -6
  858. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Dragon_5K.py +0 -6
  859. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Dragon_6K.py +0 -6
  860. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Helium_8K.py +0 -6
  861. package/staging_area/Blender/5.0/scripts/presets/tracking_camera/RED_Monstro_8K.py +0 -6
  862. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Blurry_Footage.py +0 -18
  863. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Default.py +0 -18
  864. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Fast_Motion.py +0 -18
  865. package/staging_area/Blender/5.0/scripts/presets/tracking_settings/Planar.py +0 -18
  866. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Default.py +0 -5
  867. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Far_Plane.py +0 -5
  868. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Near_Plane.py +0 -5
  869. package/staging_area/Blender/5.0/scripts/presets/tracking_track_color/Object.py +0 -5
  870. package/staging_area/Blender/5.0/scripts/startup/__pycache__/keyingsets_builtins.cpython-311.pyc +0 -0
  871. package/staging_area/Blender/5.0/scripts/startup/__pycache__/nodeitems_builtins.cpython-311.pyc +0 -0
  872. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/__init__.py +0 -56
  873. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/__pycache__/__init__.cpython-311.pyc +0 -0
  874. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/2D_Animation/startup.blend +0 -0
  875. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Sculpting/__init__.py +0 -30
  876. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Sculpting/startup.blend +0 -0
  877. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/__init__.py +0 -51
  878. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/__pycache__/__init__.cpython-311.pyc +0 -0
  879. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Storyboarding/startup.blend +0 -0
  880. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/VFX/startup.blend +0 -0
  881. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/__init__.py +0 -51
  882. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/__pycache__/__init__.cpython-311.pyc +0 -0
  883. package/staging_area/Blender/5.0/scripts/startup/bl_app_templates_system/Video_Editing/startup.blend +0 -0
  884. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__init__.py +0 -88
  885. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/__init__.cpython-311.pyc +0 -0
  886. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/add_mesh_torus.cpython-311.pyc +0 -0
  887. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/anim.cpython-311.pyc +0 -0
  888. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/assets.cpython-311.pyc +0 -0
  889. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/bone_selection_sets.cpython-311.pyc +0 -0
  890. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/clip.cpython-311.pyc +0 -0
  891. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/connect_to_output.cpython-311.pyc +0 -0
  892. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/console.cpython-311.pyc +0 -0
  893. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/constraint.cpython-311.pyc +0 -0
  894. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/copy_global_transform.cpython-311.pyc +0 -0
  895. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/file.cpython-311.pyc +0 -0
  896. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/freestyle.cpython-311.pyc +0 -0
  897. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/geometry_nodes.cpython-311.pyc +0 -0
  898. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/grease_pencil.cpython-311.pyc +0 -0
  899. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/image.cpython-311.pyc +0 -0
  900. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/image_as_planes.cpython-311.pyc +0 -0
  901. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/mesh.cpython-311.pyc +0 -0
  902. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/node.cpython-311.pyc +0 -0
  903. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object.cpython-311.pyc +0 -0
  904. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_align.cpython-311.pyc +0 -0
  905. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_quick_effects.cpython-311.pyc +0 -0
  906. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/object_randomize_transform.cpython-311.pyc +0 -0
  907. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/presets.cpython-311.pyc +0 -0
  908. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/rigidbody.cpython-311.pyc +0 -0
  909. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/screen_play_rendered_anim.cpython-311.pyc +0 -0
  910. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/sequencer.cpython-311.pyc +0 -0
  911. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/spreadsheet.cpython-311.pyc +0 -0
  912. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/userpref.cpython-311.pyc +0 -0
  913. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_follow_active.cpython-311.pyc +0 -0
  914. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_lightmap.cpython-311.pyc +0 -0
  915. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/uvcalc_transform.cpython-311.pyc +0 -0
  916. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/vertexpaint_dirt.cpython-311.pyc +0 -0
  917. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/view3d.cpython-311.pyc +0 -0
  918. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/wm.cpython-311.pyc +0 -0
  919. package/staging_area/Blender/5.0/scripts/startup/bl_operators/__pycache__/world.cpython-311.pyc +0 -0
  920. package/staging_area/Blender/5.0/scripts/startup/bl_operators/add_mesh_torus.py +0 -262
  921. package/staging_area/Blender/5.0/scripts/startup/bl_operators/anim.py +0 -924
  922. package/staging_area/Blender/5.0/scripts/startup/bl_operators/assets.py +0 -157
  923. package/staging_area/Blender/5.0/scripts/startup/bl_operators/bmesh/find_adjacent.py +0 -341
  924. package/staging_area/Blender/5.0/scripts/startup/bl_operators/bone_selection_sets.py +0 -439
  925. package/staging_area/Blender/5.0/scripts/startup/bl_operators/clip.py +0 -1044
  926. package/staging_area/Blender/5.0/scripts/startup/bl_operators/connect_to_output.py +0 -360
  927. package/staging_area/Blender/5.0/scripts/startup/bl_operators/console.py +0 -156
  928. package/staging_area/Blender/5.0/scripts/startup/bl_operators/constraint.py +0 -121
  929. package/staging_area/Blender/5.0/scripts/startup/bl_operators/copy_global_transform.py +0 -823
  930. package/staging_area/Blender/5.0/scripts/startup/bl_operators/file.py +0 -308
  931. package/staging_area/Blender/5.0/scripts/startup/bl_operators/freestyle.py +0 -226
  932. package/staging_area/Blender/5.0/scripts/startup/bl_operators/geometry_nodes.py +0 -394
  933. package/staging_area/Blender/5.0/scripts/startup/bl_operators/grease_pencil.py +0 -63
  934. package/staging_area/Blender/5.0/scripts/startup/bl_operators/image.py +0 -322
  935. package/staging_area/Blender/5.0/scripts/startup/bl_operators/image_as_planes.py +0 -1216
  936. package/staging_area/Blender/5.0/scripts/startup/bl_operators/mesh.py +0 -61
  937. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node.py +0 -1340
  938. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node_editor/__pycache__/node_functions.cpython-311.pyc +0 -0
  939. package/staging_area/Blender/5.0/scripts/startup/bl_operators/node_editor/node_functions.py +0 -97
  940. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object.py +0 -1014
  941. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_align.py +0 -407
  942. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_quick_effects.py +0 -680
  943. package/staging_area/Blender/5.0/scripts/startup/bl_operators/object_randomize_transform.py +0 -181
  944. package/staging_area/Blender/5.0/scripts/startup/bl_operators/presets.py +0 -1057
  945. package/staging_area/Blender/5.0/scripts/startup/bl_operators/rigidbody.py +0 -323
  946. package/staging_area/Blender/5.0/scripts/startup/bl_operators/screen_play_rendered_anim.py +0 -219
  947. package/staging_area/Blender/5.0/scripts/startup/bl_operators/sequencer.py +0 -438
  948. package/staging_area/Blender/5.0/scripts/startup/bl_operators/spreadsheet.py +0 -46
  949. package/staging_area/Blender/5.0/scripts/startup/bl_operators/userpref.py +0 -1324
  950. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_follow_active.py +0 -313
  951. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_lightmap.py +0 -688
  952. package/staging_area/Blender/5.0/scripts/startup/bl_operators/uvcalc_transform.py +0 -551
  953. package/staging_area/Blender/5.0/scripts/startup/bl_operators/vertexpaint_dirt.py +0 -198
  954. package/staging_area/Blender/5.0/scripts/startup/bl_operators/view3d.py +0 -316
  955. package/staging_area/Blender/5.0/scripts/startup/bl_operators/wm.py +0 -3722
  956. package/staging_area/Blender/5.0/scripts/startup/bl_operators/world.py +0 -168
  957. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__init__.py +0 -299
  958. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/__init__.cpython-311.pyc +0 -0
  959. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/anim.cpython-311.pyc +0 -0
  960. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/asset_shelf.cpython-311.pyc +0 -0
  961. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/generic_ui_list.cpython-311.pyc +0 -0
  962. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu.cpython-311.pyc +0 -0
  963. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_compositor.cpython-311.pyc +0 -0
  964. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_geometry.cpython-311.pyc +0 -0
  965. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_shader.cpython-311.pyc +0 -0
  966. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/node_add_menu_texture.cpython-311.pyc +0 -0
  967. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_animviz.cpython-311.pyc +0 -0
  968. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_collection.cpython-311.pyc +0 -0
  969. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_constraint.cpython-311.pyc +0 -0
  970. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_armature.cpython-311.pyc +0 -0
  971. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_bone.cpython-311.pyc +0 -0
  972. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_camera.cpython-311.pyc +0 -0
  973. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_curve.cpython-311.pyc +0 -0
  974. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_curves.cpython-311.pyc +0 -0
  975. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_empty.cpython-311.pyc +0 -0
  976. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_grease_pencil.cpython-311.pyc +0 -0
  977. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_lattice.cpython-311.pyc +0 -0
  978. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_light.cpython-311.pyc +0 -0
  979. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_lightprobe.cpython-311.pyc +0 -0
  980. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_mesh.cpython-311.pyc +0 -0
  981. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_metaball.cpython-311.pyc +0 -0
  982. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_modifier.cpython-311.pyc +0 -0
  983. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_pointcloud.cpython-311.pyc +0 -0
  984. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_shaderfx.cpython-311.pyc +0 -0
  985. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_speaker.cpython-311.pyc +0 -0
  986. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_data_volume.cpython-311.pyc +0 -0
  987. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_freestyle.cpython-311.pyc +0 -0
  988. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_grease_pencil_common.cpython-311.pyc +0 -0
  989. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_mask_common.cpython-311.pyc +0 -0
  990. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_material.cpython-311.pyc +0 -0
  991. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_material_gpencil.cpython-311.pyc +0 -0
  992. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_object.cpython-311.pyc +0 -0
  993. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_output.cpython-311.pyc +0 -0
  994. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_paint_common.cpython-311.pyc +0 -0
  995. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_particle.cpython-311.pyc +0 -0
  996. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_cloth.cpython-311.pyc +0 -0
  997. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_common.cpython-311.pyc +0 -0
  998. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_dynamicpaint.cpython-311.pyc +0 -0
  999. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_field.cpython-311.pyc +0 -0
  1000. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_fluid.cpython-311.pyc +0 -0
  1001. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_geometry_nodes.cpython-311.pyc +0 -0
  1002. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_rigidbody.cpython-311.pyc +0 -0
  1003. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_rigidbody_constraint.cpython-311.pyc +0 -0
  1004. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_physics_softbody.cpython-311.pyc +0 -0
  1005. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_render.cpython-311.pyc +0 -0
  1006. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_scene.cpython-311.pyc +0 -0
  1007. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_strip.cpython-311.pyc +0 -0
  1008. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_strip_modifier.cpython-311.pyc +0 -0
  1009. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_texture.cpython-311.pyc +0 -0
  1010. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_view_layer.cpython-311.pyc +0 -0
  1011. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_workspace.cpython-311.pyc +0 -0
  1012. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/properties_world.cpython-311.pyc +0 -0
  1013. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_clip.cpython-311.pyc +0 -0
  1014. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_console.cpython-311.pyc +0 -0
  1015. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_dopesheet.cpython-311.pyc +0 -0
  1016. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_filebrowser.cpython-311.pyc +0 -0
  1017. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_graph.cpython-311.pyc +0 -0
  1018. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_image.cpython-311.pyc +0 -0
  1019. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_info.cpython-311.pyc +0 -0
  1020. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_nla.cpython-311.pyc +0 -0
  1021. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_node.cpython-311.pyc +0 -0
  1022. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_outliner.cpython-311.pyc +0 -0
  1023. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_properties.cpython-311.pyc +0 -0
  1024. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_sequencer.cpython-311.pyc +0 -0
  1025. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_spreadsheet.cpython-311.pyc +0 -0
  1026. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_statusbar.cpython-311.pyc +0 -0
  1027. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_text.cpython-311.pyc +0 -0
  1028. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_time.cpython-311.pyc +0 -0
  1029. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_toolsystem_common.cpython-311.pyc +0 -0
  1030. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_toolsystem_toolbar.cpython-311.pyc +0 -0
  1031. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_topbar.cpython-311.pyc +0 -0
  1032. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_userpref.cpython-311.pyc +0 -0
  1033. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d.cpython-311.pyc +0 -0
  1034. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d_sidebar.cpython-311.pyc +0 -0
  1035. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/space_view3d_toolbar.cpython-311.pyc +0 -0
  1036. package/staging_area/Blender/5.0/scripts/startup/bl_ui/__pycache__/utils.cpython-311.pyc +0 -0
  1037. package/staging_area/Blender/5.0/scripts/startup/bl_ui/anim.py +0 -62
  1038. package/staging_area/Blender/5.0/scripts/startup/bl_ui/asset_shelf.py +0 -41
  1039. package/staging_area/Blender/5.0/scripts/startup/bl_ui/generic_ui_list.py +0 -262
  1040. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu.py +0 -505
  1041. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_compositor.py +0 -437
  1042. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_geometry.py +0 -1158
  1043. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_shader.py +0 -511
  1044. package/staging_area/Blender/5.0/scripts/startup/bl_ui/node_add_menu_texture.py +0 -167
  1045. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_animviz.py +0 -123
  1046. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_collection.py +0 -146
  1047. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_constraint.py +0 -1793
  1048. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_armature.py +0 -436
  1049. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_bone.py +0 -625
  1050. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_camera.py +0 -603
  1051. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_curve.py +0 -461
  1052. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_curves.py +0 -219
  1053. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_empty.py +0 -84
  1054. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_grease_pencil.py +0 -536
  1055. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_lattice.py +0 -105
  1056. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_light.py +0 -315
  1057. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_lightprobe.py +0 -413
  1058. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_mesh.py +0 -744
  1059. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_metaball.py +0 -137
  1060. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_modifier.py +0 -323
  1061. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_pointcloud.py +0 -175
  1062. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_shaderfx.py +0 -31
  1063. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_speaker.py +0 -157
  1064. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_data_volume.py +0 -239
  1065. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_freestyle.py +0 -1343
  1066. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_grease_pencil_common.py +0 -607
  1067. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_mask_common.py +0 -461
  1068. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_material.py +0 -460
  1069. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_material_gpencil.py +0 -272
  1070. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_object.py +0 -656
  1071. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_output.py +0 -736
  1072. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_paint_common.py +0 -1904
  1073. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_particle.py +0 -2308
  1074. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_cloth.py +0 -524
  1075. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_common.py +0 -360
  1076. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_dynamicpaint.py +0 -974
  1077. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_field.py +0 -487
  1078. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_fluid.py +0 -1629
  1079. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_geometry_nodes.py +0 -64
  1080. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_rigidbody.py +0 -345
  1081. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py +0 -554
  1082. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_physics_softbody.py +0 -471
  1083. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_render.py +0 -1180
  1084. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_scene.py +0 -495
  1085. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_strip.py +0 -1056
  1086. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_strip_modifier.py +0 -49
  1087. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_texture.py +0 -997
  1088. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_view_layer.py +0 -348
  1089. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_workspace.py +0 -195
  1090. package/staging_area/Blender/5.0/scripts/startup/bl_ui/properties_world.py +0 -282
  1091. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_clip.py +0 -2112
  1092. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_console.py +0 -157
  1093. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_dopesheet.py +0 -1123
  1094. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_filebrowser.py +0 -950
  1095. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_graph.py +0 -615
  1096. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_image.py +0 -1896
  1097. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_info.py +0 -117
  1098. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_nla.py +0 -429
  1099. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_node.py +0 -1247
  1100. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_outliner.py +0 -559
  1101. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_properties.py +0 -205
  1102. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_sequencer.py +0 -2097
  1103. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_spreadsheet.py +0 -83
  1104. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_statusbar.py +0 -41
  1105. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_text.py +0 -479
  1106. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_time.py +0 -364
  1107. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_toolsystem_common.py +0 -1256
  1108. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_toolsystem_toolbar.py +0 -4123
  1109. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_topbar.py +0 -891
  1110. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_userpref.py +0 -3108
  1111. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d.py +0 -9421
  1112. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d_sidebar.py +0 -183
  1113. package/staging_area/Blender/5.0/scripts/startup/bl_ui/space_view3d_toolbar.py +0 -2438
  1114. package/staging_area/Blender/5.0/scripts/startup/bl_ui/utils.py +0 -40
  1115. package/staging_area/Blender/5.0/scripts/startup/keyingsets_builtins.py +0 -686
  1116. package/staging_area/Blender/5.0/scripts/startup/nodeitems_builtins.py +0 -54
  1117. package/staging_area/Blender/5.0/scripts/templates_osl/advanced_camera.osl +0 -76
  1118. package/staging_area/Blender/5.0/scripts/templates_osl/basic_camera.osl +0 -14
  1119. package/staging_area/Blender/5.0/scripts/templates_osl/basic_shader.osl +0 -10
  1120. package/staging_area/Blender/5.0/scripts/templates_osl/cubemap_camera.osl +0 -42
  1121. package/staging_area/Blender/5.0/scripts/templates_osl/empty_shader.osl +0 -6
  1122. package/staging_area/Blender/5.0/scripts/templates_osl/gabor_noise.osl +0 -17
  1123. package/staging_area/Blender/5.0/scripts/templates_osl/lyapunov_texture.osl +0 -141
  1124. package/staging_area/Blender/5.0/scripts/templates_osl/noise.osl +0 -27
  1125. package/staging_area/Blender/5.0/scripts/templates_osl/ramp_closure.osl +0 -20
  1126. package/staging_area/Blender/5.0/scripts/templates_py/addon_add_object.py +0 -84
  1127. package/staging_area/Blender/5.0/scripts/templates_py/background_job.py +0 -118
  1128. package/staging_area/Blender/5.0/scripts/templates_py/batch_export.py +0 -42
  1129. package/staging_area/Blender/5.0/scripts/templates_py/bmesh_simple.py +0 -22
  1130. package/staging_area/Blender/5.0/scripts/templates_py/bmesh_simple_editmode.py +0 -23
  1131. package/staging_area/Blender/5.0/scripts/templates_py/builtin_keyingset.py +0 -37
  1132. package/staging_area/Blender/5.0/scripts/templates_py/custom_nodes.py +0 -172
  1133. package/staging_area/Blender/5.0/scripts/templates_py/driver_functions.py +0 -35
  1134. package/staging_area/Blender/5.0/scripts/templates_py/external_script_stub.py +0 -13
  1135. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_custom_geometry.py +0 -157
  1136. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_operator.py +0 -235
  1137. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_operator_target.py +0 -50
  1138. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_simple_2d.py +0 -59
  1139. package/staging_area/Blender/5.0/scripts/templates_py/gizmo_simple_3d.py +0 -47
  1140. package/staging_area/Blender/5.0/scripts/templates_py/image_processing.py +0 -35
  1141. package/staging_area/Blender/5.0/scripts/templates_py/operator_file_export.py +0 -76
  1142. package/staging_area/Blender/5.0/scripts/templates_py/operator_file_import.py +0 -79
  1143. package/staging_area/Blender/5.0/scripts/templates_py/operator_mesh_add.py +0 -116
  1144. package/staging_area/Blender/5.0/scripts/templates_py/operator_mesh_uv.py +0 -56
  1145. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal.py +0 -58
  1146. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_draw.py +0 -83
  1147. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_timer.py +0 -54
  1148. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_view3d.py +0 -77
  1149. package/staging_area/Blender/5.0/scripts/templates_py/operator_modal_view3d_raycast.py +0 -115
  1150. package/staging_area/Blender/5.0/scripts/templates_py/operator_node.py +0 -66
  1151. package/staging_area/Blender/5.0/scripts/templates_py/operator_simple.py +0 -42
  1152. package/staging_area/Blender/5.0/scripts/templates_py/ui_asset_shelf.py +0 -29
  1153. package/staging_area/Blender/5.0/scripts/templates_py/ui_list.py +0 -44
  1154. package/staging_area/Blender/5.0/scripts/templates_py/ui_list_generic.py +0 -47
  1155. package/staging_area/Blender/5.0/scripts/templates_py/ui_list_simple.py +0 -70
  1156. package/staging_area/Blender/5.0/scripts/templates_py/ui_menu.py +0 -50
  1157. package/staging_area/Blender/5.0/scripts/templates_py/ui_menu_simple.py +0 -27
  1158. package/staging_area/Blender/5.0/scripts/templates_py/ui_panel.py +0 -73
  1159. package/staging_area/Blender/5.0/scripts/templates_py/ui_panel_simple.py +0 -38
  1160. package/staging_area/Blender/5.0/scripts/templates_py/ui_pie_menu.py +0 -31
  1161. package/staging_area/Blender/5.0/scripts/templates_py/ui_previews_custom_icon.py +0 -76
  1162. package/staging_area/Blender/5.0/scripts/templates_py/ui_previews_dynamic_enum.py +0 -141
  1163. package/staging_area/Blender/5.0/scripts/templates_py/ui_tool_simple.py +0 -91
  1164. package/staging_area/Blender/5.0/scripts/templates_toml/blender_manifest.toml +0 -75
  1165. package/staging_area/Blender/blender-launcher.exe +0 -0
  1166. package/staging_area/Blender/blender.crt/api-ms-win-core-console-l1-1-0.dll +0 -0
  1167. package/staging_area/Blender/blender.crt/api-ms-win-core-console-l1-2-0.dll +0 -0
  1168. package/staging_area/Blender/blender.crt/api-ms-win-core-datetime-l1-1-0.dll +0 -0
  1169. package/staging_area/Blender/blender.crt/api-ms-win-core-debug-l1-1-0.dll +0 -0
  1170. package/staging_area/Blender/blender.crt/api-ms-win-core-errorhandling-l1-1-0.dll +0 -0
  1171. package/staging_area/Blender/blender.crt/api-ms-win-core-fibers-l1-1-0.dll +0 -0
  1172. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l1-1-0.dll +0 -0
  1173. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l1-2-0.dll +0 -0
  1174. package/staging_area/Blender/blender.crt/api-ms-win-core-file-l2-1-0.dll +0 -0
  1175. package/staging_area/Blender/blender.crt/api-ms-win-core-handle-l1-1-0.dll +0 -0
  1176. package/staging_area/Blender/blender.crt/api-ms-win-core-heap-l1-1-0.dll +0 -0
  1177. package/staging_area/Blender/blender.crt/api-ms-win-core-interlocked-l1-1-0.dll +0 -0
  1178. package/staging_area/Blender/blender.crt/api-ms-win-core-libraryloader-l1-1-0.dll +0 -0
  1179. package/staging_area/Blender/blender.crt/api-ms-win-core-localization-l1-2-0.dll +0 -0
  1180. package/staging_area/Blender/blender.crt/api-ms-win-core-memory-l1-1-0.dll +0 -0
  1181. package/staging_area/Blender/blender.crt/api-ms-win-core-namedpipe-l1-1-0.dll +0 -0
  1182. package/staging_area/Blender/blender.crt/api-ms-win-core-processenvironment-l1-1-0.dll +0 -0
  1183. package/staging_area/Blender/blender.crt/api-ms-win-core-processthreads-l1-1-0.dll +0 -0
  1184. package/staging_area/Blender/blender.crt/api-ms-win-core-processthreads-l1-1-1.dll +0 -0
  1185. package/staging_area/Blender/blender.crt/api-ms-win-core-profile-l1-1-0.dll +0 -0
  1186. package/staging_area/Blender/blender.crt/api-ms-win-core-rtlsupport-l1-1-0.dll +0 -0
  1187. package/staging_area/Blender/blender.crt/api-ms-win-core-string-l1-1-0.dll +0 -0
  1188. package/staging_area/Blender/blender.crt/api-ms-win-core-synch-l1-1-0.dll +0 -0
  1189. package/staging_area/Blender/blender.crt/api-ms-win-core-synch-l1-2-0.dll +0 -0
  1190. package/staging_area/Blender/blender.crt/api-ms-win-core-sysinfo-l1-1-0.dll +0 -0
  1191. package/staging_area/Blender/blender.crt/api-ms-win-core-timezone-l1-1-0.dll +0 -0
  1192. package/staging_area/Blender/blender.crt/api-ms-win-core-util-l1-1-0.dll +0 -0
  1193. package/staging_area/Blender/blender.crt/api-ms-win-crt-conio-l1-1-0.dll +0 -0
  1194. package/staging_area/Blender/blender.crt/api-ms-win-crt-convert-l1-1-0.dll +0 -0
  1195. package/staging_area/Blender/blender.crt/api-ms-win-crt-environment-l1-1-0.dll +0 -0
  1196. package/staging_area/Blender/blender.crt/api-ms-win-crt-filesystem-l1-1-0.dll +0 -0
  1197. package/staging_area/Blender/blender.crt/api-ms-win-crt-heap-l1-1-0.dll +0 -0
  1198. package/staging_area/Blender/blender.crt/api-ms-win-crt-locale-l1-1-0.dll +0 -0
  1199. package/staging_area/Blender/blender.crt/api-ms-win-crt-math-l1-1-0.dll +0 -0
  1200. package/staging_area/Blender/blender.crt/api-ms-win-crt-multibyte-l1-1-0.dll +0 -0
  1201. package/staging_area/Blender/blender.crt/api-ms-win-crt-private-l1-1-0.dll +0 -0
  1202. package/staging_area/Blender/blender.crt/api-ms-win-crt-process-l1-1-0.dll +0 -0
  1203. package/staging_area/Blender/blender.crt/api-ms-win-crt-runtime-l1-1-0.dll +0 -0
  1204. package/staging_area/Blender/blender.crt/api-ms-win-crt-stdio-l1-1-0.dll +0 -0
  1205. package/staging_area/Blender/blender.crt/api-ms-win-crt-string-l1-1-0.dll +0 -0
  1206. package/staging_area/Blender/blender.crt/api-ms-win-crt-time-l1-1-0.dll +0 -0
  1207. package/staging_area/Blender/blender.crt/api-ms-win-crt-utility-l1-1-0.dll +0 -0
  1208. package/staging_area/Blender/blender.crt/blender.crt.manifest +0 -54
  1209. package/staging_area/Blender/blender.crt/concrt140.dll +0 -0
  1210. package/staging_area/Blender/blender.crt/msvcp140.dll +0 -0
  1211. package/staging_area/Blender/blender.crt/msvcp140_1.dll +0 -0
  1212. package/staging_area/Blender/blender.crt/msvcp140_2.dll +0 -0
  1213. package/staging_area/Blender/blender.crt/msvcp140_atomic_wait.dll +0 -0
  1214. package/staging_area/Blender/blender.crt/msvcp140_codecvt_ids.dll +0 -0
  1215. package/staging_area/Blender/blender.crt/vcruntime140.dll +0 -0
  1216. package/staging_area/Blender/blender.crt/vcruntime140_1.dll +0 -0
@@ -1,1992 +0,0 @@
1
- # SPDX-FileCopyrightText: 2011-2023 Blender Authors
2
- #
3
- # SPDX-License-Identifier: GPL-2.0-or-later
4
-
5
- __all__ = (
6
- "paths",
7
- "modules",
8
- "check",
9
- "check_extension",
10
- "enable",
11
- "disable",
12
- "disable_all",
13
- "reset_all",
14
- "module_bl_info",
15
- "extensions_refresh",
16
- "stale_pending_remove_paths",
17
- "stale_pending_stage_paths",
18
- )
19
-
20
- import bpy as _bpy
21
- _preferences = _bpy.context.preferences
22
-
23
- error_encoding = False
24
- # (name, file, path)
25
- error_duplicates = []
26
- addons_fake_modules = {}
27
-
28
- # Global cached extensions, set before loading extensions on startup.
29
- # `{addon_module_name: "Reason for incompatibility", ...}`
30
- _extensions_incompatible = {}
31
- # Global extension warnings, lazily calculated when displaying extensions.
32
- # `{addon_module_name: "Warning", ...}`
33
- _extensions_warnings = {}
34
-
35
- # Filename used for stale files (which we can't delete).
36
- _stale_filename = ".~stale~"
37
-
38
-
39
- # called only once at startup, avoids calling 'reset_all', correct but slower.
40
- def _initialize_once():
41
- for path in paths():
42
- _bpy.utils._sys_path_ensure_append(path)
43
-
44
- _stale_pending_check_and_remove_once()
45
-
46
- _initialize_extensions_repos_once()
47
-
48
- for addon in _preferences.addons:
49
- enable(
50
- addon.module,
51
- # Ensured by `_initialize_extensions_repos_once`.
52
- refresh_handled=True,
53
- )
54
-
55
- _initialize_ensure_extensions_addon()
56
-
57
-
58
- def paths():
59
- import os
60
-
61
- paths = []
62
- for i, p in enumerate(_bpy.utils.script_paths()):
63
- # Bundled add-ons are always first.
64
- # Since this isn't officially part of the API, print an error so this never silently fails.
65
- addon_dir = os.path.join(p, "addons_core" if i == 0 else "addons")
66
- if os.path.isdir(addon_dir):
67
- paths.append(addon_dir)
68
- elif i == 0:
69
- print("Internal error:", addon_dir, "was not found!")
70
- return paths
71
-
72
-
73
- # A version of `paths` that includes extension repositories returning a list `(path, package)` pairs.
74
- #
75
- # Notes on the ``package`` value.
76
- #
77
- # - For top-level modules (the "addons" directories, the value is an empty string)
78
- # because those add-ons can be imported directly.
79
- # - For extension repositories the value is a module string (which can be imported for example)
80
- # where any modules within the `path` can be imported as a sub-module.
81
- # So for example, given a list value of: `("/tmp/repo", "bl_ext.temp_repo")`.
82
- #
83
- # An add-on located at `/tmp/repo/my_handy_addon.py` will have a unique module path of:
84
- # `bl_ext.temp_repo.my_handy_addon`, which can be imported and will be the value of it's `Addon.module`.
85
- def _paths_with_extension_repos():
86
-
87
- import os
88
- addon_paths = [(path, "") for path in paths()]
89
- for repo in _preferences.extensions.repos:
90
- if not repo.enabled:
91
- continue
92
- dirpath = repo.directory
93
- if not os.path.isdir(dirpath):
94
- continue
95
- addon_paths.append((dirpath, "{:s}.{:s}".format(_ext_base_pkg_idname, repo.module)))
96
-
97
- return addon_paths
98
-
99
-
100
- def _fake_module(mod_name, mod_path, speedy=True):
101
- global error_encoding
102
- import os
103
-
104
- if _bpy.app.debug_python:
105
- print("fake_module", mod_path, mod_name)
106
-
107
- if mod_name.startswith(_ext_base_pkg_idname_with_dot):
108
- return _fake_module_from_extension(mod_name, mod_path)
109
-
110
- import ast
111
- ModuleType = type(ast)
112
- try:
113
- file_mod = open(mod_path, "r", encoding='UTF-8')
114
- except OSError as ex:
115
- print("Error opening file:", mod_path, ex)
116
- return None
117
-
118
- with file_mod:
119
- if speedy:
120
- lines = []
121
- line_iter = iter(file_mod)
122
- line = ""
123
- while not line.startswith("bl_info"):
124
- try:
125
- line = line_iter.readline()
126
- except UnicodeDecodeError as ex:
127
- if not error_encoding:
128
- error_encoding = True
129
- print("Error reading file as UTF-8:", mod_path, ex)
130
- return None
131
-
132
- if len(line) == 0:
133
- break
134
- while line.rstrip():
135
- lines.append(line)
136
- try:
137
- line = line_iter.readline()
138
- except UnicodeDecodeError as ex:
139
- if not error_encoding:
140
- error_encoding = True
141
- print("Error reading file as UTF-8:", mod_path, ex)
142
- return None
143
-
144
- data = "".join(lines)
145
-
146
- else:
147
- data = file_mod.read()
148
- del file_mod
149
-
150
- try:
151
- ast_data = ast.parse(data, filename=mod_path)
152
- except Exception:
153
- print("Syntax error 'ast.parse' cannot read:", repr(mod_path))
154
- import traceback
155
- traceback.print_exc()
156
- ast_data = None
157
-
158
- body_info = None
159
-
160
- if ast_data:
161
- for body in ast_data.body:
162
- if body.__class__ == ast.Assign:
163
- if len(body.targets) == 1:
164
- if getattr(body.targets[0], "id", "") == "bl_info":
165
- body_info = body
166
- break
167
-
168
- if body_info:
169
- try:
170
- mod = ModuleType(mod_name)
171
- mod.bl_info = ast.literal_eval(body.value)
172
- mod.__file__ = mod_path
173
- mod.__time__ = os.path.getmtime(mod_path)
174
- except Exception:
175
- print("AST error parsing bl_info for:", repr(mod_path))
176
- import traceback
177
- traceback.print_exc()
178
- return None
179
-
180
- return mod
181
- else:
182
- print("Warning: add-on missing 'bl_info', this can cause poor performance!:", repr(mod_path))
183
- return None
184
-
185
-
186
- def modules_refresh(*, module_cache=addons_fake_modules):
187
- global error_encoding
188
- import os
189
-
190
- error_encoding = False
191
- error_duplicates.clear()
192
-
193
- modules_stale = set(module_cache.keys())
194
-
195
- for path, pkg_id in _paths_with_extension_repos():
196
- for mod_name, mod_path in _bpy.path.module_names(path, package=pkg_id):
197
- modules_stale.discard(mod_name)
198
- mod = module_cache.get(mod_name)
199
- if mod is not None:
200
- if mod.__file__ != mod_path:
201
- print(
202
- "multiple addons with the same name:\n"
203
- " {!r}\n"
204
- " {!r}".format(mod.__file__, mod_path)
205
- )
206
- error_duplicates.append((mod.bl_info["name"], mod.__file__, mod_path))
207
-
208
- elif (
209
- (mod.__time__ != os.path.getmtime(metadata_path := mod_path)) if not pkg_id else
210
- # Check the manifest time as this is the source of the cache.
211
- (mod.__time_manifest__ != os.path.getmtime(metadata_path := mod.__file_manifest__))
212
- ):
213
- print("reloading addon meta-data:", mod_name, repr(metadata_path), "(time-stamp change detected)")
214
- del module_cache[mod_name]
215
- mod = None
216
-
217
- if mod is None:
218
- mod = _fake_module(
219
- mod_name,
220
- mod_path,
221
- )
222
- if mod:
223
- module_cache[mod_name] = mod
224
-
225
- # just in case we get stale modules, not likely
226
- for mod_stale in modules_stale:
227
- del module_cache[mod_stale]
228
- del modules_stale
229
-
230
-
231
- def modules(*, module_cache=addons_fake_modules, refresh=True):
232
- if refresh or ((module_cache is addons_fake_modules) and modules._is_first):
233
- modules_refresh(module_cache=module_cache)
234
- modules._is_first = False
235
-
236
- # Dictionaries are ordered in more recent versions of Python,
237
- # re-create the dictionary from sorted items.
238
- # This avoids having to sort on every call to this function.
239
- module_cache_items = list(module_cache.items())
240
- # Sort by name with the module name as a tie breaker.
241
- module_cache_items.sort(key=lambda item: ((item[1].bl_info.get("name") or item[0]).casefold(), item[0]))
242
- module_cache.clear()
243
- module_cache.update((key, value) for key, value in module_cache_items)
244
-
245
- return module_cache.values()
246
-
247
-
248
- modules._is_first = True
249
-
250
-
251
- def check(module_name):
252
- """
253
- Returns the loaded state of the addon.
254
-
255
- :arg module_name: The name of the addon and module.
256
- :type module_name: str
257
- :return: (loaded_default, loaded_state)
258
- :rtype: tuple[bool, bool]
259
- """
260
- import sys
261
- loaded_default = module_name in _preferences.addons
262
-
263
- mod = sys.modules.get(module_name)
264
- loaded_state = (
265
- (mod is not None) and
266
- getattr(mod, "__addon_enabled__", Ellipsis)
267
- )
268
-
269
- if loaded_state is Ellipsis:
270
- print(
271
- "Warning: addon-module", module_name, "found module "
272
- "but without '__addon_enabled__' field, "
273
- "possible name collision from file:",
274
- repr(getattr(mod, "__file__", "<unknown>")),
275
- )
276
-
277
- loaded_state = False
278
-
279
- if mod and getattr(mod, "__addon_persistent__", False):
280
- loaded_default = True
281
-
282
- return loaded_default, loaded_state
283
-
284
-
285
- def check_extension(module_name):
286
- """
287
- Return true if the module is an extension.
288
- """
289
- return module_name.startswith(_ext_base_pkg_idname_with_dot)
290
-
291
-
292
- # utility functions
293
-
294
-
295
- def _addon_ensure(module_name):
296
- addons = _preferences.addons
297
- addon = addons.get(module_name)
298
- if not addon:
299
- addon = addons.new()
300
- addon.module = module_name
301
-
302
-
303
- def _addon_remove(module_name):
304
- addons = _preferences.addons
305
-
306
- while module_name in addons:
307
- addon = addons.get(module_name)
308
- if addon:
309
- addons.remove(addon)
310
-
311
-
312
- def enable(module_name, *, default_set=False, persistent=False, refresh_handled=False, handle_error=None):
313
- """
314
- Enables an addon by name.
315
-
316
- :arg module_name: the name of the addon and module.
317
- :type module_name: str
318
- :arg default_set: Set the user-preference.
319
- :type default_set: bool
320
- :arg persistent: Ensure the addon is enabled for the entire session (after loading new files).
321
- :type persistent: bool
322
- :arg refresh_handled: When true, :func:`extensions_refresh` must have been called with ``module_name``
323
- included in ``addon_modules_pending``.
324
- This should be used to avoid many calls to refresh extensions when enabling multiple add-ons at once.
325
- :type refresh_handled: bool
326
- :arg handle_error: Called in the case of an error, taking an exception argument.
327
- :type handle_error: Callable[[Exception], None] | None
328
- :return: the loaded module or None on failure.
329
- :rtype: ModuleType
330
- """
331
-
332
- import os
333
- import sys
334
- import importlib
335
- from _bpy_restrict_state import RestrictBlend
336
-
337
- if handle_error is None:
338
- def handle_error(ex):
339
- if isinstance(ex, ImportError):
340
- # NOTE: checking "Add-on " prefix is rather weak,
341
- # it's just a way to avoid the noise of a full trace-back when
342
- # an add-on is simply missing on the file-system.
343
- if (type(msg := ex.msg) is str) and msg.startswith("Add-on "):
344
- print(msg)
345
- return
346
- import traceback
347
- traceback.print_exc()
348
-
349
- if (is_extension := module_name.startswith(_ext_base_pkg_idname_with_dot)):
350
- if not refresh_handled:
351
- extensions_refresh(
352
- addon_modules_pending=[module_name],
353
- handle_error=handle_error,
354
- )
355
-
356
- # Ensure the extensions are compatible.
357
- if _extensions_incompatible:
358
- if (error := _extensions_incompatible.get(
359
- module_name[len(_ext_base_pkg_idname_with_dot):].partition(".")[0::2],
360
- )):
361
- try:
362
- raise RuntimeError("Extension {:s} is incompatible ({:s})".format(module_name, error))
363
- except RuntimeError as ex:
364
- handle_error(ex)
365
- # No need to call `extensions_refresh` because incompatible extensions
366
- # will not have their wheels installed.
367
- return None
368
-
369
- # NOTE: from now on, before returning None, `extensions_refresh()` must be called
370
- # to ensure wheels setup in anticipation for this extension being used are removed upon failure.
371
-
372
- # reload if the mtime changes
373
- mod = sys.modules.get(module_name)
374
- # chances of the file _not_ existing are low, but it could be removed
375
-
376
- # Set to `mod.__file__` or None.
377
- mod_file = None
378
-
379
- if (
380
- (mod is not None) and
381
- (mod_file := mod.__file__) is not None and
382
- os.path.exists(mod_file)
383
- ):
384
-
385
- if getattr(mod, "__addon_enabled__", False):
386
- # This is an unlikely situation,
387
- # re-register if the module is enabled.
388
- # Note: the UI doesn't allow this to happen,
389
- # in most cases the caller should 'check()' first.
390
- try:
391
- mod.unregister()
392
- except Exception as ex:
393
- print("Exception in module unregister():", (mod_file or module_name))
394
- handle_error(ex)
395
- if is_extension and not refresh_handled:
396
- extensions_refresh(handle_error=handle_error)
397
- return None
398
-
399
- mod.__addon_enabled__ = False
400
- mtime_orig = getattr(mod, "__time__", 0)
401
- mtime_new = os.path.getmtime(mod_file)
402
- if mtime_orig != mtime_new:
403
- print("module changed on disk:", repr(mod_file), "reloading...")
404
-
405
- try:
406
- importlib.reload(mod)
407
- except Exception as ex:
408
- handle_error(ex)
409
- del sys.modules[module_name]
410
-
411
- if is_extension and not refresh_handled:
412
- extensions_refresh(handle_error=handle_error)
413
- return None
414
- mod.__addon_enabled__ = False
415
-
416
- # add the addon first it may want to initialize its own preferences.
417
- # must remove on fail through.
418
- if default_set:
419
- _addon_ensure(module_name)
420
-
421
- # Split registering up into 3 steps so we can undo
422
- # if it fails par way through.
423
-
424
- # Disable the context: using the context at all
425
- # while loading an addon is really bad, don't do it!
426
- with RestrictBlend():
427
-
428
- # 1) try import
429
- try:
430
- # Use instead of `__import__` so that sub-modules can eventually be supported.
431
- # This is also documented to be the preferred way to import modules.
432
- mod = importlib.import_module(module_name)
433
- if (mod_file := mod.__file__) is None:
434
- # This can happen when:
435
- # - The add-on has been removed but there are residual `.pyc` files left behind.
436
- # - An extension is a directory that doesn't contain an `__init__.py` file.
437
- #
438
- # Include a message otherwise the "cause:" for failing to load the module is left blank.
439
- # Include the `__path__` when available so there is a reference to the location that failed to load.
440
- raise ImportError(
441
- "module loaded with no associated file, __path__={!r}, aborting!".format(
442
- getattr(mod, "__path__", None)
443
- ),
444
- name=module_name,
445
- )
446
- mod.__time__ = os.path.getmtime(mod_file)
447
- mod.__addon_enabled__ = False
448
- except Exception as ex:
449
- # If the add-on doesn't exist, don't print full trace-back because the back-trace is in this case
450
- # is verbose without any useful details. A missing path is better communicated in a short message.
451
- # Account for `ImportError` & `ModuleNotFoundError`.
452
- if isinstance(ex, ImportError):
453
- if ex.name == module_name:
454
- ex.msg = "Add-on not loaded: \"{:s}\", cause: {:s}".format(module_name, str(ex))
455
-
456
- # Issue with an add-on from an extension repository, report a useful message.
457
- elif is_extension and module_name.startswith(ex.name + "."):
458
- repo_id = module_name[len(_ext_base_pkg_idname_with_dot):].rpartition(".")[0]
459
- repo = next(
460
- (repo for repo in _preferences.extensions.repos if repo.module == repo_id),
461
- None,
462
- )
463
- if repo is None:
464
- ex.msg = (
465
- "Add-on not loaded: \"{:s}\", cause: extension repository \"{:s}\" doesn't exist".format(
466
- module_name, repo_id,
467
- )
468
- )
469
- elif not repo.enabled:
470
- ex.msg = (
471
- "Add-on not loaded: \"{:s}\", cause: extension repository \"{:s}\" is disabled".format(
472
- module_name, repo_id,
473
- )
474
- )
475
- else:
476
- # The repository exists and is enabled, it should have imported.
477
- ex.msg = "Add-on not loaded: \"{:s}\", cause: {:s}".format(module_name, str(ex))
478
-
479
- handle_error(ex)
480
-
481
- if default_set:
482
- _addon_remove(module_name)
483
- if is_extension and not refresh_handled:
484
- extensions_refresh(handle_error=handle_error)
485
- return None
486
-
487
- if is_extension:
488
- # Handle the case the an extension has `bl_info` (which is not used for extensions).
489
- # Note that internally a `bl_info` is added based on the extensions manifest - for compatibility.
490
- # So it's important not to use this one.
491
- bl_info = getattr(mod, "bl_info", None)
492
- if bl_info is not None:
493
- # Use `_init` to detect when `bl_info` was generated from the manifest, see: `_bl_info_from_extension`.
494
- if type(bl_info) is dict and "_init" not in bl_info:
495
- # This print is noisy, hide behind a debug flag.
496
- # Once `bl_info` is fully deprecated this should be changed to always print a warning.
497
- if _bpy.app.debug_python:
498
- print(
499
- "Add-on \"{:s}\" has a \"bl_info\" which will be ignored in favor of \"{:s}\"".format(
500
- module_name, _ext_manifest_filename_toml,
501
- )
502
- )
503
- # Always remove as this is not expected to exist and will be lazily initialized.
504
- del mod.bl_info
505
-
506
- # 2) Try register collected modules.
507
- # Removed register_module, addons need to handle their own registration now.
508
-
509
- from _bpy import _bl_owner_id_get, _bl_owner_id_set
510
- owner_id_prev = _bl_owner_id_get()
511
- _bl_owner_id_set(module_name)
512
-
513
- # 3) Try run the modules register function.
514
- try:
515
- mod.register()
516
- except Exception as ex:
517
- print("Exception in module register():", (mod_file or module_name))
518
- handle_error(ex)
519
- del sys.modules[module_name]
520
- if default_set:
521
- _addon_remove(module_name)
522
- if is_extension and not refresh_handled:
523
- extensions_refresh(handle_error=handle_error)
524
- return None
525
- finally:
526
- _bl_owner_id_set(owner_id_prev)
527
-
528
- # * OK loaded successfully! *
529
- mod.__addon_enabled__ = True
530
- mod.__addon_persistent__ = persistent
531
-
532
- if _bpy.app.debug_python:
533
- print("\taddon_utils.enable", mod.__name__)
534
-
535
- return mod
536
-
537
-
538
- def disable(module_name, *, default_set=False, refresh_handled=False, handle_error=None):
539
- """
540
- Disables an addon by name.
541
-
542
- :arg module_name: The name of the addon and module.
543
- :type module_name: str
544
- :arg default_set: Set the user-preference.
545
- :type default_set: bool
546
- :arg handle_error: Called in the case of an error, taking an exception argument.
547
- :type handle_error: Callable[[Exception], None] | None
548
- """
549
- import sys
550
-
551
- if handle_error is None:
552
- def handle_error(_ex):
553
- import traceback
554
- traceback.print_exc()
555
-
556
- mod = sys.modules.get(module_name)
557
-
558
- # Possible this add-on is from a previous session and didn't load a
559
- # module this time. So even if the module is not found, still disable
560
- # the add-on in the user preferences.
561
- if mod and getattr(mod, "__addon_enabled__", False) is not False:
562
- mod.__addon_enabled__ = False
563
- mod.__addon_persistent__ = False
564
-
565
- try:
566
- mod.unregister()
567
- except Exception as ex:
568
- mod_path = getattr(mod, "__file__", module_name)
569
- print("Exception in module unregister():", repr(mod_path))
570
- del mod_path
571
- handle_error(ex)
572
- else:
573
- print(
574
- "addon_utils.disable: {:s} not {:s}".format(
575
- module_name,
576
- "loaded" if mod is None else "enabled",
577
- )
578
- )
579
-
580
- # could be in more than once, unlikely but better do this just in case.
581
- if default_set:
582
- _addon_remove(module_name)
583
-
584
- if not refresh_handled:
585
- extensions_refresh(handle_error=handle_error)
586
-
587
- if _bpy.app.debug_python:
588
- print("\taddon_utils.disable", module_name)
589
-
590
-
591
- def reset_all(*, reload_scripts=False):
592
- """
593
- Sets the addon state based on the user preferences.
594
- """
595
- import sys
596
-
597
- # Ensures stale `addons_fake_modules` isn't used.
598
- modules._is_first = True
599
- addons_fake_modules.clear()
600
-
601
- # Update extensions compatibility (after reloading preferences).
602
- # Potentially refreshing wheels too.
603
- extensions_refresh()
604
-
605
- for path, pkg_id in _paths_with_extension_repos():
606
- if not pkg_id:
607
- _bpy.utils._sys_path_ensure_append(path)
608
-
609
- for mod_name, _mod_path in _bpy.path.module_names(path, package=pkg_id):
610
- is_enabled, is_loaded = check(mod_name)
611
-
612
- # first check if reload is needed before changing state.
613
- if reload_scripts:
614
- import importlib
615
- mod = sys.modules.get(mod_name)
616
- if mod:
617
- importlib.reload(mod)
618
-
619
- if is_enabled == is_loaded:
620
- pass
621
- elif is_enabled:
622
- enable(mod_name, refresh_handled=True)
623
- elif is_loaded:
624
- print("\taddon_utils.reset_all unloading", mod_name)
625
- disable(mod_name)
626
-
627
-
628
- def disable_all():
629
- import sys
630
- # Collect modules to disable first because dict can be modified as we disable.
631
-
632
- # NOTE: don't use `getattr(item[1], "__addon_enabled__", False)` because this runs on all modules,
633
- # including 3rd party modules unrelated to Blender.
634
- #
635
- # Some modules may have their own `__getattr__` and either:
636
- # - Not raise an `AttributeError` (is they should),
637
- # causing `hasattr` & `getattr` to raise an exception instead of treating the attribute as missing.
638
- # - Generate modules dynamically, modifying `sys.modules` which is being iterated over,
639
- # causing a RuntimeError: "dictionary changed size during iteration".
640
- #
641
- # Either way, running 3rd party logic here can cause undefined behavior.
642
- # Use direct `__dict__` access to bypass `__getattr__`, see: #111649.
643
- modules = sys.modules.copy()
644
- addon_modules = [
645
- item for item in modules.items()
646
- if type(mod_dict := getattr(item[1], "__dict__", None)) is dict
647
- if mod_dict.get("__addon_enabled__")
648
- ]
649
- # Check the enabled state again since it's possible the disable call
650
- # of one add-on disables others.
651
- for mod_name, mod in addon_modules:
652
- if getattr(mod, "__addon_enabled__", False):
653
- disable(mod_name, refresh_handled=True)
654
-
655
-
656
- def _blender_manual_url_prefix():
657
- return "https://docs.blender.org/manual/{:s}/{:d}.{:d}".format(
658
- _bpy.utils.manual_language_code(),
659
- *_bpy.app.version[:2],
660
- )
661
-
662
-
663
- def _bl_info_basis():
664
- return {
665
- "name": "",
666
- "author": "",
667
- "version": (),
668
- "blender": (),
669
- "location": "",
670
- "description": "",
671
- "doc_url": "",
672
- "support": 'COMMUNITY',
673
- "category": "",
674
- "warning": "",
675
- "show_expanded": False,
676
- }
677
-
678
-
679
- def module_bl_info(mod, *, info_basis=None):
680
- if info_basis is None:
681
- info_basis = _bl_info_basis()
682
-
683
- addon_info = getattr(mod, "bl_info", {})
684
-
685
- # avoid re-initializing
686
- if "_init" in addon_info:
687
- return addon_info
688
-
689
- if not addon_info:
690
- if mod.__name__.startswith(_ext_base_pkg_idname_with_dot):
691
- addon_info, filepath_toml = _bl_info_from_extension(mod.__name__, mod.__file__)
692
- if addon_info is None:
693
- # Unexpected, this is a malformed extension if meta-data can't be loaded.
694
- print("module_bl_info: failed to extract meta-data from", filepath_toml)
695
- # Continue to initialize dummy data.
696
- addon_info = {}
697
-
698
- mod.bl_info = addon_info
699
-
700
- for key, value in info_basis.items():
701
- addon_info.setdefault(key, value)
702
-
703
- if not addon_info["name"]:
704
- addon_info["name"] = mod.__name__
705
-
706
- doc_url = addon_info["doc_url"]
707
- if doc_url:
708
- doc_url_prefix = "{BLENDER_MANUAL_URL}"
709
- if doc_url_prefix in doc_url:
710
- addon_info["doc_url"] = doc_url.replace(
711
- doc_url_prefix,
712
- _blender_manual_url_prefix(),
713
- )
714
-
715
- # Remove the maintainers email while it's not private, showing prominently
716
- # could cause maintainers to get direct emails instead of issue tracking systems.
717
- import re
718
- if "author" in addon_info:
719
- addon_info["author"] = re.sub(r"\s*<.*?>", "", addon_info["author"])
720
-
721
- addon_info["_init"] = None
722
- return addon_info
723
-
724
-
725
- # -----------------------------------------------------------------------------
726
- # Stale File Handling
727
- #
728
- # Notes:
729
- # - On startup, a file exists that indicates cleanup is needed.
730
- # In the common case the file doesn't exist.
731
- # Otherwise module paths are scanned for files to remove.
732
- # - Since errors resolving paths to remove could result in user data loss,
733
- # ensure the paths are always within the (extension/add-on/app-template) directory.
734
- # - File locking isn't used, if multiple Blender instances start at the
735
- # same time and try to remove the same files, this won't cause errors.
736
- # Even so, remove the checking file immediately avoid unnecessary
737
- # file-system access overhead for other Blender instances.
738
- #
739
- # For more implementation details see `_bpy_internal.extensions.stale_file_manager`.
740
- # This mainly impacts WIN32 which can't remove open file handles, see: #77837 & #125049.
741
- #
742
- # Use for all systems as the problem can impact any system if file removal fails
743
- # for any reason (typically permissions or file-system error).
744
-
745
- def _stale_pending_filepath():
746
- # When this file exists, stale file removal is pending.
747
- # Try to remove stale files next launch.
748
- import os
749
- return os.path.join(_bpy.utils.user_resource('CONFIG'), "stale-pending")
750
-
751
-
752
- def _stale_pending_stage(debug):
753
- import os
754
-
755
- stale_pending_filepath = _stale_pending_filepath()
756
- dirpath = os.path.dirname(stale_pending_filepath)
757
-
758
- if os.path.exists(stale_pending_filepath):
759
- return
760
-
761
- try:
762
- os.makedirs(dirpath, exist_ok=True)
763
- with open(stale_pending_filepath, "wb") as _:
764
- pass
765
- except Exception as ex:
766
- print("Unable to set stale files pending:", str(ex))
767
-
768
-
769
- def _stale_file_directory_iter():
770
- import os
771
-
772
- for repo in _preferences.extensions.repos:
773
- if not repo.enabled:
774
- continue
775
- if repo.source == 'SYSTEM':
776
- continue
777
- yield repo.directory
778
-
779
- # Skip `addons_core` because add-ons because these will never be uninstalled by the user.
780
- yield from paths()[1:]
781
-
782
- # The `local_dir`, for wheels.
783
- yield os.path.join(_bpy.utils.user_resource('EXTENSIONS'), ".local")
784
-
785
- # The `path_app_templates`, for user app-templates.
786
- yield _bpy.utils.user_resource(
787
- 'SCRIPTS',
788
- path=os.path.join("startup", "bl_app_templates_user"),
789
- create=False,
790
- )
791
-
792
-
793
- def _stale_pending_check_and_remove_once():
794
- # This runs on every startup, early exit if no stale data removal is staged.
795
- import os
796
- stale_pending_filepath = _stale_pending_filepath()
797
- if not os.path.exists(stale_pending_filepath):
798
- return
799
-
800
- # Some stale data needs to be removed, this is an exceptional case.
801
- # Allow for slower logic than is typically accepted on startup.
802
- from _bpy_internal.extensions.stale_file_manager import StaleFiles
803
- debug = _bpy.app.debug_python
804
-
805
- # Remove the pending file if all are removed.
806
- is_empty = True
807
-
808
- for dirpath in _stale_file_directory_iter():
809
- if not os.path.exists(os.path.join(dirpath, _stale_filename)):
810
- continue
811
-
812
- try:
813
- stale_handle = StaleFiles(
814
- base_directory=dirpath,
815
- stale_filename=_stale_filename,
816
- debug=debug,
817
- )
818
- stale_handle.state_load(check_exists=True)
819
- if not stale_handle.is_empty():
820
- stale_handle.state_remove_all()
821
- if not stale_handle.is_empty():
822
- is_empty = False
823
- if stale_handle.is_modified():
824
- stale_handle.state_store(check_exists=False)
825
- except Exception as ex:
826
- print("Unexpected error clearing stale data, this is a bug!", str(ex))
827
-
828
- if is_empty:
829
- try:
830
- os.remove(stale_pending_filepath)
831
- except Exception as ex:
832
- if debug:
833
- print("Failed to remove stale-pending file:", str(ex))
834
-
835
-
836
- def stale_pending_stage_paths(path_base, paths):
837
- # - `path_base` must a directory iterated over by `_stale_file_directory_iter`.
838
- # Otherwise the stale files will never be removed.
839
- # - `paths` must be absolute paths which could not be removed.
840
- # They must be located within `base_path` otherwise they cannot be removed.
841
- from _bpy_internal.extensions.stale_file_manager import StaleFiles
842
-
843
- debug = _bpy.app.debug_python
844
-
845
- stale_handle = StaleFiles(
846
- base_directory=path_base,
847
- stale_filename=_stale_filename,
848
- debug=debug,
849
- )
850
- # Already checked.
851
- if stale_handle.state_load_add_and_store(paths=paths):
852
- # Force clearing stale files on next restart.
853
- _stale_pending_stage(debug)
854
-
855
-
856
- def stale_pending_remove_paths(path_base, paths):
857
- # The reverse of: `stale_pending_stage_paths`.
858
- from _bpy_internal.extensions.stale_file_manager import StaleFiles
859
-
860
- debug = _bpy.app.debug_python
861
-
862
- stale_handle = StaleFiles(
863
- base_directory=path_base,
864
- stale_filename=_stale_filename,
865
- debug=debug,
866
- )
867
- # Already checked.
868
- if stale_handle.state_load_remove_and_store(paths=paths):
869
- # Don't attempt to reverse the `_stale_pending_stage` call.
870
- # This is not trivial since other repositories may need to be cleared.
871
- # There will be a minor performance hit on restart but this is enough
872
- # of a corner case that it's not worth attempting to calculate if
873
- # removal of pending files is needed or not.
874
- pass
875
-
876
-
877
- # -----------------------------------------------------------------------------
878
- # Extension Pre-Flight Compatibility Check
879
- #
880
- # Check extension compatibility on startup so any extensions which are incompatible with Blender are marked as
881
- # incompatible and wont be loaded. This cache avoids having to scan all extensions on startup on *every* startup.
882
- #
883
- # Implementation:
884
- #
885
- # The emphasis for this cache is to have minimum overhead for the common case where:
886
- # - The simple case where there are no extensions enabled (running tests, background tasks etc).
887
- # - The more involved case where extensions are enabled and have not changed since last time Blender started.
888
- # In this case do as little as possible since it runs on every startup, the following steps are unavoidable.
889
- # - When reading compatibility cache, then run the following tests, regenerating when changes are detected.
890
- # - Compare with previous blender version/platform.
891
- # - Stat the manifests of all enabled extensions, testing that their modification-time and size are unchanged.
892
- # - When any changes are detected,
893
- # regenerate compatibility information which does more expensive operations
894
- # (loading manifests, check version ranges etc).
895
- #
896
- # Other notes:
897
- #
898
- # - This internal format may change at any point, regenerating the cache should be reasonably fast
899
- # but may introduce a small but noticeable pause on startup for user configurations that contain many extensions.
900
- # - Failure to load will simply ignore the file and regenerate the file as needed.
901
- #
902
- # Format:
903
- #
904
- # - The cache is ZLIB compressed pickled Python dictionary.
905
- # - The dictionary keys are as follows:
906
- # `"blender": (bpy.app.version, platform.system(), platform.machine(), python_version, magic_number)`
907
- # `"filesystem": [(repo_module, pkg_id, manifest_time, manifest_size), ...]`
908
- # `"incompatible": {(repo_module, pkg_id): "Reason for being incompatible", ...}`
909
- #
910
-
911
-
912
- def _pickle_zlib_file_read(filepath):
913
- import pickle
914
- import gzip
915
-
916
- with gzip.GzipFile(filepath, "rb") as fh:
917
- data = pickle.load(fh)
918
- return data
919
-
920
-
921
- def _pickle_zlib_file_write(filepath, data) -> None:
922
- import pickle
923
- import gzip
924
-
925
- with gzip.GzipFile(filepath, "wb", compresslevel=9) as fh:
926
- pickle.dump(data, fh)
927
-
928
-
929
- def _extension_repos_module_to_directory_map():
930
- return {repo.module: repo.directory for repo in _preferences.extensions.repos if repo.enabled}
931
-
932
-
933
- def _extension_compat_cache_update_needed(
934
- cache_data, # `dict[str, Any]`
935
- blender_id, # `tuple[Any, ...]`
936
- extensions_enabled, # `set[tuple[str, str]]`
937
- print_debug, # `Callable[[Any], None] | None`
938
- ): # `-> bool`
939
-
940
- # Detect when Blender itself changes.
941
- if cache_data.get("blender") != blender_id:
942
- if print_debug is not None:
943
- print_debug("blender changed")
944
- return True
945
-
946
- # Detect when any of the extensions paths change.
947
- cache_filesystem = cache_data.get("filesystem", [])
948
-
949
- # Avoid touching the file-system if at all possible.
950
- # When the length is the same and all cached ID's are in this set, we can be sure they are a 1:1 patch.
951
- if len(cache_filesystem) != len(extensions_enabled):
952
- if print_debug is not None:
953
- print_debug("length changes ({:d} -> {:d}).".format(len(cache_filesystem), len(extensions_enabled)))
954
- return True
955
-
956
- from os import stat
957
- from os.path import join
958
- repos_module_to_directory_map = _extension_repos_module_to_directory_map()
959
-
960
- for repo_module, pkg_id, cache_stat_time, cache_stat_size in cache_filesystem:
961
- if (repo_module, pkg_id) not in extensions_enabled:
962
- if print_debug is not None:
963
- print_debug("\"{:s}.{:s}\" no longer enabled.".format(repo_module, pkg_id))
964
- return True
965
-
966
- if repo_directory := repos_module_to_directory_map.get(repo_module, ""):
967
- pkg_manifest_filepath = join(repo_directory, pkg_id, _ext_manifest_filename_toml)
968
- else:
969
- pkg_manifest_filepath = ""
970
-
971
- # It's possible an extension has been set as an add-on but cannot find the repository it came from.
972
- # In this case behave as if the file can't be found (because it can't) instead of ignoring it.
973
- # This is done because it's important to match.
974
- if pkg_manifest_filepath:
975
- try:
976
- statinfo = stat(pkg_manifest_filepath)
977
- except Exception:
978
- statinfo = None
979
- else:
980
- statinfo = None
981
-
982
- if statinfo is None:
983
- test_time = 0
984
- test_size = 0
985
- else:
986
- test_time = statinfo.st_mtime
987
- test_size = statinfo.st_size
988
-
989
- # Detect changes to any files manifest.
990
- if cache_stat_time != test_time:
991
- if print_debug is not None:
992
- print_debug("\"{:s}.{:s}\" time changed ({:g} -> {:g}).".format(
993
- repo_module, pkg_id, cache_stat_time, test_time,
994
- ))
995
- return True
996
- if cache_stat_size != test_size:
997
- if print_debug is not None:
998
- print_debug("\"{:s}.{:s}\" size changed ({:d} -> {:d}).".format(
999
- repo_module, pkg_id, cache_stat_size, test_size,
1000
- ))
1001
- return True
1002
-
1003
- return False
1004
-
1005
-
1006
- # This function should not run every startup, so it can afford to be slower,
1007
- # although users should not have to wait for it either.
1008
- def _extension_compat_cache_create(
1009
- blender_id, # `tuple[Any, ...]`
1010
- extensions_enabled, # `set[tuple[str, str]]`
1011
- wheel_list, # `list[tuple[str, list[str]]]`
1012
- print_debug, # `Callable[[Any], None] | None`
1013
- ): # `-> dict[str, Any]`
1014
- import os
1015
- from os.path import join
1016
-
1017
- filesystem = []
1018
- incompatible = {}
1019
-
1020
- cache_data = {
1021
- "blender": blender_id,
1022
- "filesystem": filesystem,
1023
- "incompatible": incompatible,
1024
- }
1025
-
1026
- repos_module_to_directory_map = _extension_repos_module_to_directory_map()
1027
-
1028
- # Only import this module once (if at all).
1029
- bl_pkg = None
1030
-
1031
- for repo_module, pkg_id in extensions_enabled:
1032
- if repo_directory := repos_module_to_directory_map.get(repo_module, ""):
1033
- pkg_manifest_filepath = join(repo_directory, pkg_id, _ext_manifest_filename_toml)
1034
- else:
1035
- pkg_manifest_filepath = ""
1036
- if print_debug is not None:
1037
- print_debug("directory for module \"{:s}\" not found!".format(repo_module))
1038
-
1039
- if pkg_manifest_filepath:
1040
- try:
1041
- statinfo = os.stat(pkg_manifest_filepath)
1042
- except Exception:
1043
- statinfo = None
1044
- if print_debug is not None:
1045
- print_debug("unable to find \"{:s}\"".format(pkg_manifest_filepath))
1046
- else:
1047
- statinfo = None
1048
-
1049
- if statinfo is None:
1050
- test_time = 0.0
1051
- test_size = 0
1052
- else:
1053
- test_time = statinfo.st_mtime
1054
- test_size = statinfo.st_size
1055
- # Store the reason for failure, to print when attempting to load.
1056
-
1057
- # Only load the module once.
1058
- if bl_pkg is None:
1059
- # Without `bl_pkg.__time__` this will detect as having been changed and
1060
- # reload the module when loading the add-on.
1061
- import bl_pkg
1062
- if getattr(bl_pkg, "__time__", 0) == 0:
1063
- try:
1064
- bl_pkg.__time__ = os.path.getmtime(bl_pkg.__file__)
1065
- except Exception as ex:
1066
- if print_debug is not None:
1067
- print_debug(str(ex))
1068
-
1069
- if (error := bl_pkg.manifest_compatible_with_wheel_data_or_error(
1070
- pkg_manifest_filepath,
1071
- repo_module,
1072
- pkg_id,
1073
- repo_directory,
1074
- wheel_list,
1075
- )) is not None:
1076
- incompatible[(repo_module, pkg_id)] = error
1077
-
1078
- filesystem.append((repo_module, pkg_id, test_time, test_size))
1079
-
1080
- return cache_data
1081
-
1082
-
1083
- def _initialize_extensions_compat_ensure_up_to_date(extensions_directory, extensions_enabled, print_debug):
1084
- import os
1085
- import platform
1086
- import sys
1087
-
1088
- global _extensions_incompatible
1089
-
1090
- updated = False
1091
- wheel_list = []
1092
-
1093
- # Number to bump to change this format and force re-generation.
1094
- magic_number = 0
1095
-
1096
- blender_id = (_bpy.app.version, platform.system(), platform.machine(), sys.version_info[0:2], magic_number)
1097
-
1098
- filepath_compat = os.path.join(extensions_directory, ".cache", "compat.dat")
1099
-
1100
- # Cache data contains a dict of:
1101
- # {
1102
- # "blender": (...)
1103
- # "paths": [path data to detect changes]
1104
- # "incompatible": {set of incompatible extensions}
1105
- # }
1106
- if os.path.exists(filepath_compat):
1107
- try:
1108
- cache_data = _pickle_zlib_file_read(filepath_compat)
1109
- except Exception as ex:
1110
- cache_data = None
1111
- # While this should not happen continuously (that would point to writing invalid cache),
1112
- # it is not a problem if there is some corruption with the cache and it needs to be re-generated.
1113
- # Show a message since this should be a rare occurrence - if it happens often it's likely to be a bug.
1114
- print("Extensions: reading cache failed ({:s}), creating...".format(str(ex)))
1115
- else:
1116
- cache_data = None
1117
- if print_debug is not None:
1118
- print_debug("doesn't exist, creating...")
1119
-
1120
- if cache_data is not None:
1121
- # NOTE: the exception handling here is fairly paranoid and accounts for invalid values in the loaded cache.
1122
- # An example would be values expected to be lists/dictionaries being other types (None or strings for example).
1123
- # While this should not happen, some bad value should not prevent Blender from loading properly,
1124
- # so report the error and regenerate cache.
1125
- try:
1126
- if _extension_compat_cache_update_needed(cache_data, blender_id, extensions_enabled, print_debug):
1127
- cache_data = None
1128
- except Exception:
1129
- print("Extension: unexpected error reading cache, this is a bug! (regenerating)")
1130
- import traceback
1131
- traceback.print_exc()
1132
- cache_data = None
1133
-
1134
- if cache_data is None:
1135
- cache_data = _extension_compat_cache_create(blender_id, extensions_enabled, wheel_list, print_debug)
1136
- try:
1137
- os.makedirs(os.path.dirname(filepath_compat), exist_ok=True)
1138
- _pickle_zlib_file_write(filepath_compat, cache_data)
1139
- if print_debug is not None:
1140
- print_debug("update written to disk.")
1141
- except Exception as ex:
1142
- # Should be rare but should not cause this function to fail.
1143
- print("Extensions: writing cache failed ({:s}).".format(str(ex)))
1144
-
1145
- # Set to true even when not written to disk as the run-time data *has* been updated,
1146
- # cache will attempt to be generated next time this is called.
1147
- updated = True
1148
- else:
1149
- if print_debug is not None:
1150
- print_debug("up to date.")
1151
-
1152
- _extensions_incompatible = cache_data["incompatible"]
1153
-
1154
- return updated, wheel_list
1155
-
1156
-
1157
- def _initialize_extensions_compat_ensure_up_to_date_wheels(extensions_directory, wheel_list, debug, error_fn):
1158
- import os
1159
- _extension_sync_wheels(
1160
- local_dir=os.path.join(extensions_directory, ".local"),
1161
- wheel_list=wheel_list,
1162
- debug=debug,
1163
- error_fn=error_fn,
1164
- )
1165
-
1166
-
1167
- def _initialize_extensions_compat_data(
1168
- extensions_directory, # `str`
1169
- *,
1170
- ensure_wheels, # `bool`
1171
- addon_modules_pending, # `Sequence[str] | None`
1172
- use_startup_fastpath, # `bool`
1173
- error_fn, # `Callable[[Exception], None] | None`
1174
- ):
1175
- # WARNING: this function must *never* raise an exception because it would interfere with low level initialization.
1176
- # As the function deals with file IO, use what are typically over zealous exception checks so as to rule out
1177
- # interfering with Blender loading properly in unexpected cases such as disk-full, read-only file-system
1178
- # or any other rare but possible scenarios.
1179
-
1180
- _extensions_incompatible.clear()
1181
-
1182
- # Create a set of all extension ID's.
1183
- extensions_enabled = set()
1184
- extensions_prefix_len = len(_ext_base_pkg_idname_with_dot)
1185
- for addon in _preferences.addons:
1186
- module_name = addon.module
1187
- if check_extension(module_name):
1188
- extensions_enabled.add(module_name[extensions_prefix_len:].partition(".")[0::2])
1189
-
1190
- if addon_modules_pending is not None:
1191
- for module_name in addon_modules_pending:
1192
- if check_extension(module_name):
1193
- extensions_enabled.add(module_name[extensions_prefix_len:].partition(".")[0::2])
1194
-
1195
- debug = _bpy.app.debug_python
1196
- print_debug = (lambda *args, **kwargs: print("Extension version cache:", *args, **kwargs)) if debug else None
1197
-
1198
- # Early exit, use for automated tests.
1199
- # Avoid (relatively) expensive file-system scanning if at all possible.
1200
- #
1201
- # - On startup when there are no extensions enabled, scanning and synchronizing wheels
1202
- # adds unnecessary overhead. Especially considering this will run for automated tasks.
1203
- # - When disabling an add-on from the UI, there may be no extensions enabled afterwards,
1204
- # however the extension that was disabled may have had wheels installed which must be removed,
1205
- # so in this case it's important not to skip synchronizing wheels, see: #125958.
1206
- if use_startup_fastpath and (not extensions_enabled):
1207
- if print_debug is not None:
1208
- print_debug("no extensions, skipping cache data.")
1209
- return
1210
-
1211
- # While this isn't expected to fail, any failure here is a bug
1212
- # but it should not cause Blender's startup to fail.
1213
- try:
1214
- updated, wheel_list = _initialize_extensions_compat_ensure_up_to_date(
1215
- extensions_directory,
1216
- extensions_enabled,
1217
- print_debug,
1218
- )
1219
- except Exception:
1220
- print("Extension: unexpected error detecting cache, this is a bug!")
1221
- import traceback
1222
- traceback.print_exc()
1223
- updated = False
1224
-
1225
- if ensure_wheels:
1226
- if updated:
1227
- if error_fn is None:
1228
- def error_fn(ex):
1229
- print("Error:", str(ex))
1230
-
1231
- try:
1232
- _initialize_extensions_compat_ensure_up_to_date_wheels(
1233
- extensions_directory,
1234
- wheel_list,
1235
- debug,
1236
- error_fn=error_fn,
1237
- )
1238
- except Exception:
1239
- print("Extension: unexpected error updating wheels, this is a bug!")
1240
- import traceback
1241
- traceback.print_exc()
1242
-
1243
-
1244
- # -----------------------------------------------------------------------------
1245
- # Extension Utilities
1246
-
1247
- def _version_int_left_digits(x):
1248
- # Parse as integer until the first non-digit.
1249
- return int(x[:next((i for i, c in enumerate(x) if not c.isdigit()), len(x))] or "0")
1250
-
1251
-
1252
- def _bl_info_from_extension(mod_name, mod_path):
1253
- # Extract the `bl_info` from an extensions manifest.
1254
- # This is returned as a module which has a `bl_info` variable.
1255
- # When support for non-extension add-ons is dropped (Blender v5.0 perhaps)
1256
- # this can be updated not to use a fake module.
1257
- import os
1258
- import tomllib
1259
-
1260
- bl_info = _bl_info_basis()
1261
-
1262
- filepath_toml = os.path.join(os.path.dirname(mod_path), _ext_manifest_filename_toml)
1263
- try:
1264
- with open(filepath_toml, "rb") as fh:
1265
- data = tomllib.load(fh)
1266
- except FileNotFoundError:
1267
- print("Warning: add-on missing manifest, this can cause poor performance!:", repr(filepath_toml))
1268
- return None, filepath_toml
1269
- except Exception as ex:
1270
- print("Error:", str(ex), "in", filepath_toml)
1271
- return None, filepath_toml
1272
-
1273
- # This isn't a full validation which happens on package install/update.
1274
- if (value := data.get("name", None)) is None:
1275
- print("Error: missing \"name\" in", filepath_toml)
1276
- return None, filepath_toml
1277
- if type(value) is not str:
1278
- print("Error: \"name\" is not a string in", filepath_toml)
1279
- return None, filepath_toml
1280
- bl_info["name"] = value
1281
-
1282
- if (value := data.get("version", None)) is None:
1283
- print("Error: missing \"version\" in", filepath_toml)
1284
- return None, filepath_toml
1285
- if type(value) is not str:
1286
- print("Error: \"version\" is not a string in", filepath_toml)
1287
- return None, filepath_toml
1288
- try:
1289
- value = tuple(
1290
- (int if i < 2 else _version_int_left_digits)(x)
1291
- for i, x in enumerate(value.split(".", 2))
1292
- )
1293
- except Exception as ex:
1294
- print("Error: \"version\" is not a semantic version (X.Y.Z) in ", filepath_toml, str(ex))
1295
- return None, filepath_toml
1296
- bl_info["version"] = value
1297
-
1298
- if (value := data.get("blender_version_min", None)) is None:
1299
- print("Error: missing \"blender_version_min\" in", filepath_toml)
1300
- return None, filepath_toml
1301
- if type(value) is not str:
1302
- print("Error: \"blender_version_min\" is not a string in", filepath_toml)
1303
- return None, filepath_toml
1304
- try:
1305
- value = tuple(int(x) for x in value.split("."))
1306
- except Exception as ex:
1307
- print("Error:", str(ex), "in \"blender_version_min\"", filepath_toml)
1308
- return None, filepath_toml
1309
- bl_info["blender"] = value
1310
-
1311
- # Only print warnings since description is not a mandatory field.
1312
- if (value := data.get("tagline", None)) is None:
1313
- print("Warning: missing \"tagline\" in", filepath_toml)
1314
- elif type(value) is not str:
1315
- print("Warning: \"tagline\" is not a string", filepath_toml)
1316
- else:
1317
- bl_info["description"] = value
1318
-
1319
- if (value := data.get("maintainer", None)) is None:
1320
- print("Error: missing \"author\" in", filepath_toml)
1321
- return None, filepath_toml
1322
- if type(value) is not str:
1323
- print("Error: \"maintainer\" is not a string", filepath_toml)
1324
- return None, filepath_toml
1325
- bl_info["author"] = value
1326
-
1327
- bl_info["category"] = "Development" # Dummy, will be removed.
1328
-
1329
- return bl_info, filepath_toml
1330
-
1331
-
1332
- def _fake_module_from_extension(mod_name, mod_path):
1333
- import os
1334
-
1335
- bl_info, filepath_toml = _bl_info_from_extension(mod_name, mod_path)
1336
- if bl_info is None:
1337
- return None
1338
-
1339
- ModuleType = type(os)
1340
- mod = ModuleType(mod_name)
1341
- mod.bl_info = bl_info
1342
- mod.__file__ = mod_path
1343
- mod.__time__ = os.path.getmtime(mod_path)
1344
-
1345
- # NOTE(@ideasman42): Add non-standard manifest variables to the "fake" module,
1346
- # this isn't ideal as it moves further away from the return value being minimal fake-module
1347
- # (where `__name__` and `__file__` are typically used).
1348
- # A custom type could be used, however this needs to be done carefully
1349
- # as all users of `addon_utils.modules(..)` need to be updated.
1350
- mod.__file_manifest__ = filepath_toml
1351
- mod.__time_manifest__ = os.path.getmtime(filepath_toml)
1352
- return mod
1353
-
1354
-
1355
- def _extension_sync_wheels(
1356
- *,
1357
- local_dir, # `str`
1358
- wheel_list, # `list[WheelSource]`
1359
- debug, # `bool`
1360
- error_fn, # `Callable[[Exception], None]`
1361
- ): # `-> None`
1362
- import os
1363
- import sys
1364
- from _bpy_internal.extensions.wheel_manager import apply_action
1365
-
1366
- local_dir_site_packages = os.path.join(
1367
- local_dir,
1368
- "lib",
1369
- "python{:d}.{:d}".format(*sys.version_info[0:2]),
1370
- "site-packages",
1371
- )
1372
-
1373
- paths_stale = []
1374
-
1375
- def remove_error_fn(filepath: str, _ex: Exception) -> None:
1376
- paths_stale.append(filepath)
1377
-
1378
- apply_action(
1379
- local_dir=local_dir,
1380
- local_dir_site_packages=local_dir_site_packages,
1381
- wheel_list=wheel_list,
1382
- error_fn=error_fn,
1383
- remove_error_fn=remove_error_fn,
1384
- debug=debug,
1385
- )
1386
-
1387
- if paths_stale:
1388
- stale_pending_stage_paths(local_dir, paths_stale)
1389
-
1390
- if os.path.exists(local_dir_site_packages):
1391
- if local_dir_site_packages not in sys.path:
1392
- sys.path.append(local_dir_site_packages)
1393
-
1394
-
1395
- # -----------------------------------------------------------------------------
1396
- # Extensions
1397
-
1398
- def _initialize_ensure_extensions_addon():
1399
- module_name = "bl_pkg"
1400
- if module_name not in _preferences.addons:
1401
- enable(module_name, default_set=True, persistent=True)
1402
-
1403
-
1404
- # Module-like class, store singletons.
1405
- class _ext_global:
1406
- __slots__ = ()
1407
-
1408
- # Store a map of `preferences.extensions.repos` -> `module_id`.
1409
- # Only needed to detect renaming between `bpy.app.handlers.extension_repos_update_{pre & post}` events.
1410
- #
1411
- # The first dictionary is for enabled repositories, the second for disabled repositories
1412
- # which can be ignored in most cases and is only needed for a module rename.
1413
- idmap_pair = {}, {}
1414
-
1415
- # The base package created by `JunctionModuleHandle`.
1416
- module_handle = None
1417
-
1418
-
1419
- # The name (in `sys.modules`) keep this short because it's stored as part of add-on modules name.
1420
- _ext_base_pkg_idname = "bl_ext"
1421
- _ext_base_pkg_idname_with_dot = _ext_base_pkg_idname + "."
1422
- _ext_manifest_filename_toml = "blender_manifest.toml"
1423
-
1424
-
1425
- def _extension_module_name_decompose(package):
1426
- # Returns the repository module name and the extensions ID from an extensions module name (``__package__``).
1427
- #
1428
- # :arg module_name: The extensions module name.
1429
- # :type module_name: str
1430
- # :return: (repo_module_name, extension_id)
1431
- # :rtype: tuple[str, str]
1432
-
1433
- if not package.startswith(_ext_base_pkg_idname_with_dot):
1434
- raise ValueError("The \"package\" does not name an extension")
1435
-
1436
- repo_module, pkg_idname = package[len(_ext_base_pkg_idname_with_dot):].partition(".")[0::2]
1437
- if not (repo_module and pkg_idname):
1438
- raise ValueError("The \"package\" is expected to be a module name containing 3 components")
1439
-
1440
- if "." in pkg_idname:
1441
- raise ValueError("The \"package\" is expected to be a module name containing 3 components, found {:d}".format(
1442
- pkg_idname.count(".") + 3
1443
- ))
1444
-
1445
- # Unlikely but possible.
1446
- if not (repo_module.isidentifier() and pkg_idname.isidentifier()):
1447
- raise ValueError("The \"package\" contains non-identifier characters")
1448
-
1449
- return repo_module, pkg_idname
1450
-
1451
-
1452
- def _extension_preferences_idmap():
1453
- repos_idmap = {}
1454
- repos_idmap_disabled = {}
1455
- for repo in _preferences.extensions.repos:
1456
- if repo.enabled:
1457
- repos_idmap[repo.as_pointer()] = repo.module
1458
- else:
1459
- repos_idmap_disabled[repo.as_pointer()] = repo.module
1460
- return repos_idmap, repos_idmap_disabled
1461
-
1462
-
1463
- def _extension_dirpath_from_preferences():
1464
- repos_dict = {}
1465
- for repo in _preferences.extensions.repos:
1466
- if not repo.enabled:
1467
- continue
1468
- repos_dict[repo.module] = repo.directory
1469
- return repos_dict
1470
-
1471
-
1472
- def _extension_dirpath_from_handle():
1473
- repos_info = {}
1474
- for module_id, module in _ext_global.module_handle.submodule_items():
1475
- # Account for it being unset although this should never happen unless script authors
1476
- # meddle with the modules.
1477
- try:
1478
- dirpath = module.__path__[0]
1479
- except Exception:
1480
- dirpath = ""
1481
- repos_info[module_id] = dirpath
1482
- return repos_info
1483
-
1484
-
1485
- # Ensure the add-ons follow changes to repositories, enabling, disabling and module renaming.
1486
- def _initialize_extension_repos_post_addons_prepare(
1487
- module_handle,
1488
- *,
1489
- submodules_del,
1490
- submodules_add,
1491
- submodules_rename_module,
1492
- submodules_del_disabled,
1493
- submodules_rename_module_disabled,
1494
- ):
1495
- addons_to_enable = []
1496
- if not (
1497
- submodules_del or
1498
- submodules_add or
1499
- submodules_rename_module or
1500
- submodules_del_disabled or
1501
- submodules_rename_module_disabled
1502
- ):
1503
- return addons_to_enable
1504
-
1505
- # All preferences info.
1506
- # Map: `repo_id -> {submodule_id -> addon, ...}`.
1507
- addon_userdef_info = {}
1508
- for addon in _preferences.addons:
1509
- module = addon.module
1510
- if not module.startswith(_ext_base_pkg_idname_with_dot):
1511
- continue
1512
- module_id, submodule_id = module[len(_ext_base_pkg_idname_with_dot):].partition(".")[0::2]
1513
- try:
1514
- addon_userdef_info[module_id][submodule_id] = addon
1515
- except KeyError:
1516
- addon_userdef_info[module_id] = {submodule_id: addon}
1517
-
1518
- # All run-time info.
1519
- # Map: `module_id -> {submodule_id -> module, ...}`.
1520
- addon_runtime_info = {}
1521
- for module_id, repo_module in module_handle.submodule_items():
1522
- extensions_info = {}
1523
- for submodule_id in dir(repo_module):
1524
- if submodule_id.startswith("_"):
1525
- continue
1526
- mod = getattr(repo_module, submodule_id)
1527
- # Filter out non add-on, non-modules.
1528
- if not hasattr(mod, "__addon_enabled__"):
1529
- continue
1530
- extensions_info[submodule_id] = mod
1531
- addon_runtime_info[module_id] = extensions_info
1532
- del extensions_info
1533
-
1534
- # Apply changes to add-ons.
1535
- if submodules_add:
1536
- # Re-enable add-ons that exist in the user preferences,
1537
- # this lets the add-ons state be restored when toggling a repository.
1538
- for module_id, _dirpath in submodules_add:
1539
- repo_userdef = addon_userdef_info.get(module_id, {})
1540
- repo_runtime = addon_runtime_info.get(module_id, {})
1541
-
1542
- for submodule_id, addon in repo_userdef.items():
1543
- module_name_next = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id, submodule_id)
1544
- # Only default & persistent add-ons are kept for re-activation.
1545
- default_set = True
1546
- persistent = True
1547
- addons_to_enable.append((module_name_next, addon, default_set, persistent))
1548
-
1549
- for module_id_prev, module_id_next in submodules_rename_module:
1550
- repo_userdef = addon_userdef_info.get(module_id_prev, {})
1551
- repo_runtime = addon_runtime_info.get(module_id_prev, {})
1552
- for submodule_id, mod in repo_runtime.items():
1553
- if not getattr(mod, "__addon_enabled__", False):
1554
- continue
1555
- module_name_prev = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id_prev, submodule_id)
1556
- module_name_next = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id_next, submodule_id)
1557
- disable(module_name_prev, default_set=False, refresh_handled=True)
1558
- addon = repo_userdef.get(submodule_id)
1559
- default_set = addon is not None
1560
- persistent = getattr(mod, "__addon_persistent__", False)
1561
- addons_to_enable.append((module_name_next, addon, default_set, persistent))
1562
-
1563
- for module_id_prev, module_id_next in submodules_rename_module_disabled:
1564
- repo_userdef = addon_userdef_info.get(module_id_prev, {})
1565
- repo_runtime = addon_runtime_info.get(module_id_prev, {})
1566
- for submodule_id, addon in repo_userdef.items():
1567
- mod = repo_runtime.get(submodule_id)
1568
- if mod is not None and getattr(mod, "__addon_enabled__", False):
1569
- continue
1570
- # Either there is no run-time data or the module wasn't enabled.
1571
- # Rename the add-on without enabling it so the next time it's enabled it's preferences are kept.
1572
- module_name_next = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id_next, submodule_id)
1573
- addon.module = module_name_next
1574
-
1575
- if submodules_del:
1576
- repo_module_map = {repo.module: repo for repo in _preferences.extensions.repos}
1577
- for module_id in submodules_del:
1578
- repo_userdef = addon_userdef_info.get(module_id, {})
1579
- repo_runtime = addon_runtime_info.get(module_id, {})
1580
-
1581
- repo = repo_module_map.get(module_id)
1582
- default_set = True
1583
- if repo and not repo.enabled:
1584
- # The repository exists but has been disabled, keep the add-on preferences
1585
- # because the user may want to re-enable the repository temporarily.
1586
- default_set = False
1587
-
1588
- for submodule_id, mod in repo_runtime.items():
1589
- module_name_prev = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id, submodule_id)
1590
- disable(module_name_prev, default_set=default_set, refresh_handled=True)
1591
- del repo
1592
- del repo_module_map
1593
-
1594
- if submodules_del_disabled:
1595
- for module_id_prev in submodules_del_disabled:
1596
- repo_userdef = addon_userdef_info.get(module_id_prev, {})
1597
- for submodule_id in repo_userdef.keys():
1598
- module_name_prev = "{:s}.{:s}.{:s}".format(_ext_base_pkg_idname, module_id_prev, submodule_id)
1599
- disable(module_name_prev, default_set=True, refresh_handled=True)
1600
-
1601
- return addons_to_enable
1602
-
1603
-
1604
- # Enable add-ons after the modules have been manipulated.
1605
- def _initialize_extension_repos_post_addons_restore(addons_to_enable):
1606
- if not addons_to_enable:
1607
- return
1608
-
1609
- # Important to refresh wheels & compatibility data before enabling.
1610
- extensions_refresh(addon_modules_pending=[module_name_next for (module_name_next, _, _, _) in addons_to_enable])
1611
-
1612
- any_failed = False
1613
- for (module_name_next, addon, default_set, persistent) in addons_to_enable:
1614
- # Ensure the preferences are kept.
1615
- if addon is not None:
1616
- addon.module = module_name_next
1617
- if enable(module_name_next, default_set=default_set, persistent=persistent) is None:
1618
- any_failed = True
1619
-
1620
- # Remove wheels for any add-ons that failed to enable.
1621
- if any_failed:
1622
- extensions_refresh()
1623
-
1624
- # Needed for module rename.
1625
- _is_first_reset()
1626
-
1627
-
1628
- # Use `bpy.app.handlers.extension_repos_update_{pre/post}` to track changes to extension repositories
1629
- # and sync the changes to the Python module.
1630
-
1631
-
1632
- @_bpy.app.handlers.persistent
1633
- def _initialize_extension_repos_pre(*_):
1634
- _ext_global.idmap_pair = _extension_preferences_idmap()
1635
-
1636
-
1637
- @_bpy.app.handlers.persistent
1638
- def _initialize_extension_repos_post(*_, is_first=False):
1639
-
1640
- # When enabling extensions for the first time, ensure the add-on is enabled.
1641
- _initialize_ensure_extensions_addon()
1642
-
1643
- do_addons = not is_first
1644
-
1645
- # Map `module_id` -> `dirpath`.
1646
- repos_info_prev = _extension_dirpath_from_handle()
1647
- repos_info_next = _extension_dirpath_from_preferences()
1648
-
1649
- # Map `repo.as_pointer()` -> `module_id`.
1650
- repos_idmap_prev, repos_idmap_prev_disabled = _ext_global.idmap_pair
1651
- repos_idmap_next, repos_idmap_next_disabled = _extension_preferences_idmap()
1652
-
1653
- # Map `module_id` -> `repo.as_pointer()`.
1654
- repos_idmap_next_reverse = {value: key for key, value in repos_idmap_next.items()}
1655
-
1656
- # Mainly needed when the state of repositories changes at run-time:
1657
- # factory settings then load preferences for example.
1658
- #
1659
- # Filter `repos_idmap_prev` so only items which were also in the `repos_info_prev` are included.
1660
- # This is an awkward situation, they should be in sync, however when enabling the experimental option
1661
- # means the preferences wont have changed, but the module will not be in sync with the preferences.
1662
- # Support this by removing items in `repos_idmap_prev` which aren't also initialized in the managed package.
1663
- #
1664
- # The only situation this would be useful to keep is if we want to support renaming a package
1665
- # that manipulates all add-ons using it, when those add-ons are in the preferences but have not had
1666
- # their package loaded. It's possible we want to do this but is also reasonably obscure.
1667
- for repo_id_prev, module_id_prev in list(repos_idmap_prev.items()):
1668
- if module_id_prev not in repos_info_prev:
1669
- del repos_idmap_prev[repo_id_prev]
1670
-
1671
- submodules_add = [] # List of module names to add: `(module_id, dirpath)`.
1672
- submodules_del = [] # List of module names to remove: `module_id`.
1673
- submodules_rename_module = [] # List of module names: `(module_id_src, module_id_dst)`.
1674
- submodules_rename_dirpath = [] # List of module names: `(module_id, dirpath)`.
1675
-
1676
- renamed_prev = set()
1677
- renamed_next = set()
1678
-
1679
- # Detect rename modules & module directories.
1680
- for module_id_next, dirpath_next in repos_info_next.items():
1681
- # Lookup never fails, as the "next" values use: `preferences.extensions.repos`.
1682
- repo_id = repos_idmap_next_reverse[module_id_next]
1683
- # Lookup may fail if this is a newly added module.
1684
- # Don't attempt to setup `submodules_add` though as it's possible
1685
- # the module name persists while the underlying `repo_id` changes.
1686
- module_id_prev = repos_idmap_prev.get(repo_id)
1687
- if module_id_prev is None:
1688
- continue
1689
-
1690
- # Detect rename.
1691
- if module_id_next != module_id_prev:
1692
- submodules_rename_module.append((module_id_prev, module_id_next))
1693
- renamed_prev.add(module_id_prev)
1694
- renamed_next.add(module_id_next)
1695
-
1696
- # Detect `dirpath` change.
1697
- if dirpath_next != repos_info_prev[module_id_prev]:
1698
- submodules_rename_dirpath.append((module_id_next, dirpath_next))
1699
-
1700
- # Detect added modules.
1701
- for module_id, dirpath in repos_info_next.items():
1702
- if (module_id not in repos_info_prev) and (module_id not in renamed_next):
1703
- submodules_add.append((module_id, dirpath))
1704
- # Detect deleted modules.
1705
- for module_id, _dirpath in repos_info_prev.items():
1706
- if (module_id not in repos_info_next) and (module_id not in renamed_prev):
1707
- submodules_del.append(module_id)
1708
-
1709
- if do_addons:
1710
- submodules_del_disabled = [] # A version of `submodules_del` for disabled repositories.
1711
- submodules_rename_module_disabled = [] # A version of `submodules_rename_module` for disabled repositories.
1712
-
1713
- # Detect deleted modules.
1714
- for repo_id_prev, module_id_prev in repos_idmap_prev_disabled.items():
1715
- if (
1716
- (repo_id_prev not in repos_idmap_next_disabled) and
1717
- (repo_id_prev not in repos_idmap_next)
1718
- ):
1719
- submodules_del_disabled.append(module_id_prev)
1720
-
1721
- # Detect rename of disabled modules.
1722
- for repo_id_next, module_id_next in repos_idmap_next_disabled.items():
1723
- module_id_prev = repos_idmap_prev_disabled.get(repo_id_next)
1724
- if module_id_prev is None:
1725
- continue
1726
- # Detect rename.
1727
- if module_id_next != module_id_prev:
1728
- submodules_rename_module_disabled.append((module_id_prev, module_id_next))
1729
-
1730
- addons_to_enable = _initialize_extension_repos_post_addons_prepare(
1731
- _ext_global.module_handle,
1732
- submodules_del=submodules_del,
1733
- submodules_add=submodules_add,
1734
- submodules_rename_module=submodules_rename_module,
1735
- submodules_del_disabled=submodules_del_disabled,
1736
- submodules_rename_module_disabled=submodules_rename_module_disabled,
1737
- )
1738
- del submodules_del_disabled, submodules_rename_module_disabled
1739
-
1740
- # Apply changes to the `_ext_base_pkg_idname` named module so it matches extension data from the preferences.
1741
- module_handle = _ext_global.module_handle
1742
- for module_id in submodules_del:
1743
- module_handle.unregister_submodule(module_id)
1744
- for module_id, dirpath in submodules_add:
1745
- module_handle.register_submodule(module_id, dirpath)
1746
- for module_id_prev, module_id_next in submodules_rename_module:
1747
- module_handle.rename_submodule(module_id_prev, module_id_next)
1748
- for module_id, dirpath in submodules_rename_dirpath:
1749
- module_handle.rename_directory(module_id, dirpath)
1750
-
1751
- _ext_global.idmap_pair[0].clear()
1752
- _ext_global.idmap_pair[1].clear()
1753
-
1754
- if do_addons:
1755
- _initialize_extension_repos_post_addons_restore(addons_to_enable)
1756
-
1757
- # Force refreshing if directory paths change.
1758
- if submodules_del or submodules_add or submodules_rename_dirpath:
1759
- _is_first_reset()
1760
-
1761
-
1762
- def _initialize_extensions_site_packages(*, extensions_directory, create=False):
1763
- # Add extension site-packages to `sys.path` (if it exists).
1764
- # Use for wheels.
1765
- import os
1766
- import sys
1767
-
1768
- # NOTE: follow the structure of `~/.local/lib/python#.##/site-packages`
1769
- # because some wheels contain paths pointing to parent directories,
1770
- # referencing `../../../bin` for example - to install binaries into `~/.local/bin`,
1771
- # so this can't simply be treated as a module directory unless those files would be excluded
1772
- # which may interfere with the wheels functionality.
1773
- site_packages = os.path.join(
1774
- extensions_directory,
1775
- ".local",
1776
- "lib",
1777
- "python{:d}.{:d}".format(sys.version_info.major, sys.version_info.minor),
1778
- "site-packages",
1779
- )
1780
- if create:
1781
- if not os.path.exists(site_packages):
1782
- os.makedirs(site_packages)
1783
- found = True
1784
- else:
1785
- found = os.path.exists(site_packages)
1786
-
1787
- if found:
1788
- # Ensure the wheels `site-packages` are added before all other site-packages.
1789
- # This is important for extensions modules get priority over system modules.
1790
- # Without this, installing a module into the systems site-packages (`/usr/lib/python#.##/site-packages`)
1791
- # could break an extension which already had a different version of this module installed locally.
1792
- from site import getsitepackages
1793
- index = None
1794
- if builtin_site_packages := set(getsitepackages()):
1795
- for i, dirpath in enumerate(sys.path):
1796
- if dirpath in builtin_site_packages:
1797
- index = i
1798
- break
1799
- if index is None:
1800
- sys.path.append(site_packages)
1801
- else:
1802
- sys.path.insert(index, site_packages)
1803
- else:
1804
- try:
1805
- sys.path.remove(site_packages)
1806
- except ValueError:
1807
- pass
1808
-
1809
- return site_packages if found else None
1810
-
1811
-
1812
- def _initialize_extensions_repos_once():
1813
- from _bpy_internal.extensions.junction_module import JunctionModuleHandle
1814
- module_handle = JunctionModuleHandle(_ext_base_pkg_idname)
1815
- module_handle.register_module()
1816
- _ext_global.module_handle = module_handle
1817
-
1818
- extensions_directory = _bpy.utils.user_resource('EXTENSIONS')
1819
-
1820
- # Ensure extensions wheels can be loaded (when found).
1821
- _initialize_extensions_site_packages(extensions_directory=extensions_directory)
1822
-
1823
- # Ensure extension compatibility data has been loaded and matches the manifests.
1824
- _initialize_extensions_compat_data(
1825
- extensions_directory,
1826
- ensure_wheels=True,
1827
- addon_modules_pending=None,
1828
- use_startup_fastpath=True,
1829
- # Runs on startup, fall back to printing.
1830
- error_fn=None,
1831
- )
1832
-
1833
- # Setup repositories for the first time.
1834
- # Intentionally don't call `_initialize_extension_repos_pre` as this is the first time,
1835
- # the previous state is not useful to read.
1836
- _initialize_extension_repos_post(is_first=True)
1837
-
1838
- # Internal handlers intended for Blender's own handling of repositories.
1839
- _bpy.app.handlers._extension_repos_update_pre.append(_initialize_extension_repos_pre)
1840
- _bpy.app.handlers._extension_repos_update_post.append(_initialize_extension_repos_post)
1841
-
1842
-
1843
- # -----------------------------------------------------------------------------
1844
- # Extension Public API
1845
-
1846
- def extensions_refresh(
1847
- ensure_wheels=True,
1848
- addon_modules_pending=None,
1849
- handle_error=None,
1850
- ):
1851
- """
1852
- Ensure data relating to extensions is up to date.
1853
- This should be called after extensions on the file-system have changed.
1854
-
1855
- :arg ensure_wheels: When true, refresh installed wheels with wheels used by extensions.
1856
- :type ensure_wheels: bool
1857
- :arg addon_modules_pending: Refresh these add-ons by listing their package names, as if they are enabled.
1858
- This is needed so wheels can be setup before the add-on is enabled.
1859
- :type addon_modules_pending: Sequence[str] | None
1860
- :arg handle_error: Called in the case of an error, taking an exception argument.
1861
- :type handle_error: Callable[[Exception], None] | None
1862
- """
1863
-
1864
- # Ensure any changes to extensions refresh `_extensions_incompatible`.
1865
- _initialize_extensions_compat_data(
1866
- _bpy.utils.user_resource('EXTENSIONS'),
1867
- ensure_wheels=ensure_wheels,
1868
- addon_modules_pending=addon_modules_pending,
1869
- use_startup_fastpath=False,
1870
- error_fn=handle_error,
1871
- )
1872
-
1873
-
1874
- def _extensions_warnings_get():
1875
- if _extensions_warnings_get._is_first is False:
1876
- return _extensions_warnings
1877
-
1878
- # Calculate warnings which are shown in the UI but not calculated at load time
1879
- # because this incurs some overhead.
1880
- #
1881
- # Currently this checks for scripts violating policies:
1882
- # - Adding their directories or sub-directories to `sys.path`.
1883
- # - Loading any bundled scripts as modules directly into `sys.modules`.
1884
- #
1885
- # These warnings are shown:
1886
- # - In the add-on UI.
1887
- # - In the extension UI.
1888
- # - When listing extensions via `blender -c extension list`.
1889
-
1890
- import sys
1891
- import os
1892
-
1893
- _extensions_warnings_get._is_first = False
1894
- _extensions_warnings.clear()
1895
-
1896
- # This could be empty, it just avoid a lot of redundant lookups to skip known module paths.
1897
- dirs_skip_expected = (
1898
- os.path.normpath(os.path.join(os.path.dirname(_bpy.__file__), "..")) + os.sep,
1899
- os.path.normpath(os.path.join(os.path.dirname(__import__("bl_ui").__file__), "..")) + os.sep,
1900
- os.path.normpath(os.path.dirname(os.__file__)) + os.sep,
1901
- # Legacy add add-on paths.
1902
- *(os.path.normpath(path) + os.sep for path in paths()),
1903
- )
1904
-
1905
- extensions_directory_map = {}
1906
- modules_other = []
1907
-
1908
- for module_name, module in sys.modules.items():
1909
-
1910
- if module_name == "__main__":
1911
- continue
1912
-
1913
- module_file = getattr(module, "__file__", None) or ""
1914
- if not module_file:
1915
- # In most cases these are PY-CAPI modules.
1916
- continue
1917
-
1918
- module_file = os.path.normpath(module_file)
1919
-
1920
- if module_file.startswith(dirs_skip_expected):
1921
- continue
1922
-
1923
- if module_name.startswith(_ext_base_pkg_idname_with_dot):
1924
- # Check this is a sub-module (an extension).
1925
- if module_name.find(".", len(_ext_base_pkg_idname_with_dot)) != -1:
1926
- # Ignore extension sub-modules because there is no need to handle their directories.
1927
- # The extensions directory accounts for any paths which may be found in the sub-modules path.
1928
- if module_name.count(".") > 2:
1929
- continue
1930
- extensions_directory_map[module_name] = os.path.dirname(module_file) + os.sep
1931
- else:
1932
- # Any non extension module.
1933
- modules_other.append((module_name, module_file))
1934
-
1935
- dirs_extensions = tuple(path for path in extensions_directory_map.values())
1936
- dirs_extensions_noslash = set(path.rstrip(os.sep) for path in dirs_extensions)
1937
- if dirs_extensions:
1938
- for module_other_name, module_other_file in modules_other:
1939
- if not module_other_file.startswith(dirs_extensions):
1940
- continue
1941
-
1942
- # Need 2x lookups, not ideal but `str.startswith` doesn't let us know which argument matched.
1943
- found = False
1944
- for module_name, module_dirpath in extensions_directory_map.items():
1945
- if not module_other_file.startswith(module_dirpath):
1946
- continue
1947
- try:
1948
- warning_list = _extensions_warnings[module_name]
1949
- except KeyError:
1950
- warning_list = _extensions_warnings[module_name] = []
1951
- warning_list.append("Policy violation with top level module: {:s}".format(module_other_name))
1952
- found = True
1953
- break
1954
- assert found
1955
-
1956
- for path in sys.path:
1957
- path = os.path.normpath(path)
1958
- if path.startswith(dirs_skip_expected):
1959
- continue
1960
-
1961
- if not (path in dirs_extensions_noslash or path.startswith(dirs_extensions)):
1962
- continue
1963
-
1964
- found = False
1965
- for module_name, module_dirpath in extensions_directory_map.items():
1966
- if not (path == module_dirpath.rstrip(os.sep) or path.startswith(module_dirpath)):
1967
- continue
1968
- try:
1969
- warning_list = _extensions_warnings[module_name]
1970
- except KeyError:
1971
- warning_list = _extensions_warnings[module_name] = []
1972
- # Use an extension relative path as an absolute path may be too verbose for the UI.
1973
- warning_list.append(
1974
- "Policy violation with sys.path: {:s}".format(
1975
- ".{:s}{:s}".format(os.sep, os.path.relpath(path, module_dirpath))
1976
- )
1977
- )
1978
- found = True
1979
- break
1980
- assert found
1981
-
1982
- return _extensions_warnings
1983
-
1984
-
1985
- _extensions_warnings_get._is_first = True
1986
-
1987
-
1988
- def _is_first_reset():
1989
- # Reset all values which are lazily initialized,
1990
- # use this to force re-creating extension warnings and cached modules.
1991
- _extensions_warnings_get._is_first = True
1992
- modules._is_first = True