stouputils 1.13.3__tar.gz → 1.14.1__tar.gz

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 (170) hide show
  1. {stouputils-1.13.3 → stouputils-1.14.1}/PKG-INFO +1 -1
  2. {stouputils-1.13.3 → stouputils-1.14.1}/pyproject.toml +1 -1
  3. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/automatic_docs.py +3 -0
  4. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/parallel.py +13 -10
  5. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/parallel.pyi +4 -4
  6. {stouputils-1.13.3 → stouputils-1.14.1}/README.md +0 -0
  7. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/__init__.py +0 -0
  8. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/__init__.pyi +0 -0
  9. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/__main__.py +0 -0
  10. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/_deprecated.py +0 -0
  11. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/_deprecated.pyi +0 -0
  12. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/all_doctests.py +0 -0
  13. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/all_doctests.pyi +0 -0
  14. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/__init__.py +0 -0
  15. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/__init__.pyi +0 -0
  16. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/automatic_docs.pyi +0 -0
  17. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/__init__.py +0 -0
  18. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/__init__.pyi +0 -0
  19. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/config.py +0 -0
  20. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/config.pyi +0 -0
  21. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/image.py +0 -0
  22. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/image.pyi +0 -0
  23. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/video.py +0 -0
  24. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/applications/upscaler/video.pyi +0 -0
  25. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/archive.py +0 -0
  26. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/archive.pyi +0 -0
  27. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/backup.py +0 -0
  28. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/backup.pyi +0 -0
  29. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/collections.py +0 -0
  30. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/collections.pyi +0 -0
  31. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/__init__.py +0 -0
  32. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/__init__.pyi +0 -0
  33. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/cd_utils.py +0 -0
  34. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/cd_utils.pyi +0 -0
  35. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/github.py +0 -0
  36. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/github.pyi +0 -0
  37. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/pypi.py +0 -0
  38. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/pypi.pyi +0 -0
  39. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/pyproject.py +0 -0
  40. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/pyproject.pyi +0 -0
  41. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/stubs.py +0 -0
  42. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/continuous_delivery/stubs.pyi +0 -0
  43. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/ctx.py +0 -0
  44. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/ctx.pyi +0 -0
  45. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/config/get.py +0 -0
  46. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/config/set.py +0 -0
  47. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/__init__.py +0 -0
  48. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/auto_contrast.py +0 -0
  49. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/axis_flip.py +0 -0
  50. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/bias_field_correction.py +0 -0
  51. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/binary_threshold.py +0 -0
  52. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/blur.py +0 -0
  53. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/brightness.py +0 -0
  54. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/canny.py +0 -0
  55. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/clahe.py +0 -0
  56. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/common.py +0 -0
  57. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/contrast.py +0 -0
  58. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/curvature_flow_filter.py +0 -0
  59. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/denoise.py +0 -0
  60. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/histogram_equalization.py +0 -0
  61. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/invert.py +0 -0
  62. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/laplacian.py +0 -0
  63. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/median_blur.py +0 -0
  64. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/noise.py +0 -0
  65. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/normalize.py +0 -0
  66. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/random_erase.py +0 -0
  67. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/resize.py +0 -0
  68. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/rotation.py +0 -0
  69. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/salt_pepper.py +0 -0
  70. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/sharpening.py +0 -0
  71. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/shearing.py +0 -0
  72. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/threshold.py +0 -0
  73. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/translation.py +0 -0
  74. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image/zoom.py +0 -0
  75. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image_augmentation.py +0 -0
  76. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/image_preprocess.py +0 -0
  77. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/prosthesis_detection.py +0 -0
  78. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/data_processing/technique.py +0 -0
  79. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/__init__.py +0 -0
  80. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/dataset.py +0 -0
  81. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/dataset_loader.py +0 -0
  82. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/grouping_strategy.py +0 -0
  83. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/image_loader.py +0 -0
  84. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/dataset/xy_tuple.py +0 -0
  85. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/metric_dictionnary.py +0 -0
  86. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/metric_utils.py +0 -0
  87. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/mlflow_utils.py +0 -0
  88. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/abstract_model.py +0 -0
  89. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/all.py +0 -0
  90. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/base_keras.py +0 -0
  91. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/all.py +0 -0
  92. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/convnext.py +0 -0
  93. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/densenet.py +0 -0
  94. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/efficientnet.py +0 -0
  95. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/mobilenet.py +0 -0
  96. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/resnet.py +0 -0
  97. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/squeezenet.py +0 -0
  98. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/vgg.py +0 -0
  99. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras/xception.py +0 -0
  100. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/__init__.py +0 -0
  101. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/colored_progress_bar.py +0 -0
  102. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/learning_rate_finder.py +0 -0
  103. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/model_checkpoint_v2.py +0 -0
  104. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/progressive_unfreezing.py +0 -0
  105. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/callbacks/warmup_scheduler.py +0 -0
  106. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/losses/__init__.py +0 -0
  107. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/losses/next_generation_loss.py +0 -0
  108. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/keras_utils/visualizations.py +0 -0
  109. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/model_interface.py +0 -0
  110. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/models/sandbox.py +0 -0
  111. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/range_tuple.py +0 -0
  112. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/scripts/augment_dataset.py +0 -0
  113. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/scripts/exhaustive_process.py +0 -0
  114. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/scripts/preprocess_dataset.py +0 -0
  115. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/scripts/routine.py +0 -0
  116. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/data_science/utils.py +0 -0
  117. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/decorators.py +0 -0
  118. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/decorators.pyi +0 -0
  119. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/image.py +0 -0
  120. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/image.pyi +0 -0
  121. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/__init__.py +0 -0
  122. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/__init__.pyi +0 -0
  123. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/common.py +0 -0
  124. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/common.pyi +0 -0
  125. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/downloader.py +0 -0
  126. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/downloader.pyi +0 -0
  127. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/linux.py +0 -0
  128. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/linux.pyi +0 -0
  129. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/main.py +0 -0
  130. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/main.pyi +0 -0
  131. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/windows.py +0 -0
  132. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/installer/windows.pyi +0 -0
  133. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/io.py +0 -0
  134. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/io.pyi +0 -0
  135. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/parallel.pyi +0 -0
  136. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/print.py +0 -0
  137. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/print.pyi +0 -0
  138. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/py.typed +0 -0
  139. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/__init__.pyi +0 -0
  140. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/_deprecated.pyi +0 -0
  141. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/all_doctests.pyi +0 -0
  142. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/__init__.pyi +0 -0
  143. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/automatic_docs.pyi +0 -0
  144. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/upscaler/__init__.pyi +0 -0
  145. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/upscaler/config.pyi +0 -0
  146. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/upscaler/image.pyi +0 -0
  147. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/applications/upscaler/video.pyi +0 -0
  148. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/archive.pyi +0 -0
  149. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/backup.pyi +0 -0
  150. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/collections.pyi +0 -0
  151. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/__init__.pyi +0 -0
  152. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/cd_utils.pyi +0 -0
  153. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/github.pyi +0 -0
  154. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/pypi.pyi +0 -0
  155. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/pyproject.pyi +0 -0
  156. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/continuous_delivery/stubs.pyi +0 -0
  157. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/ctx.pyi +0 -0
  158. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/decorators.pyi +0 -0
  159. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/image.pyi +0 -0
  160. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/__init__.pyi +0 -0
  161. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/common.pyi +0 -0
  162. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/downloader.pyi +0 -0
  163. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/linux.pyi +0 -0
  164. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/main.pyi +0 -0
  165. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/installer/windows.pyi +0 -0
  166. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/io.pyi +0 -0
  167. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/print.pyi +0 -0
  168. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/stouputils/version_pkg.pyi +0 -0
  169. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/version_pkg.py +0 -0
  170. {stouputils-1.13.3 → stouputils-1.14.1}/stouputils/version_pkg.pyi +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stouputils
3
- Version: 1.13.3
3
+ Version: 1.14.1
4
4
  Summary: Stouputils is a collection of utility modules designed to simplify and enhance the development process. It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers, and many more.
5
5
  Keywords: utilities,tools,helpers,development,python
6
6
  Author: Stoupy51
@@ -8,7 +8,7 @@ module-root = ""
8
8
 
9
9
  [project]
10
10
  name = "stouputils"
11
- version = "1.13.3"
11
+ version = "1.14.1"
12
12
  description = "Stouputils is a collection of utility modules designed to simplify and enhance the development process. It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers, and many more."
13
13
  readme = "README.md"
14
14
  keywords = ["utilities", "tools", "helpers", "development", "python"]
@@ -286,6 +286,7 @@ def get_versions_from_github(github_user: str, github_repo: str, recent_minor_ve
286
286
  if d["type"] == "dir" and d["name"].startswith("v")
287
287
  ], key=version_to_float, reverse=True
288
288
  )
289
+ info(f"Found versions from GitHub: {all_versions}")
289
290
 
290
291
  # Group versions by major.minor
291
292
  from collections import defaultdict
@@ -295,9 +296,11 @@ def get_versions_from_github(github_user: str, github_repo: str, recent_minor_ve
295
296
  if len(parts) >= 2:
296
297
  minor_key = f"{parts[0]}.{parts[1]}"
297
298
  minor_versions[minor_key].append(version)
299
+ info(f"Grouped minor versions: {dict(minor_versions)}")
298
300
 
299
301
  # Get the sorted minor version keys
300
302
  sorted_minors = sorted(minor_versions.keys(), key=version_to_float, reverse=True)
303
+ info(f"Sorted minor versions: {sorted_minors}")
301
304
 
302
305
  # Build final version list
303
306
  final_versions: list[str] = []
@@ -335,8 +335,8 @@ def run_in_subprocess[R](
335
335
  import multiprocessing as mp
336
336
  from multiprocessing import Queue
337
337
 
338
- # Create a queue to get the result from the subprocess
339
- result_queue: Queue[R | Exception] = Queue()
338
+ # Create a queue to get the result from the subprocess (only if we need to wait)
339
+ result_queue: Queue[R | Exception] | None = None if no_join else Queue()
340
340
 
341
341
  # Create and start the subprocess using the module-level wrapper
342
342
  process: mp.Process = mp.Process(
@@ -345,8 +345,9 @@ def run_in_subprocess[R](
345
345
  )
346
346
  process.start()
347
347
 
348
- # Join with timeout to prevent indefinite hanging
349
- if no_join:
348
+ # Detach process if no_join (fire-and-forget)
349
+ if result_queue is None:
350
+ process.close() # Detach the process
350
351
  return None # type: ignore
351
352
  process.join(timeout=timeout)
352
353
 
@@ -394,16 +395,18 @@ def _subprocess_wrapper[R](
394
395
  Must be at module level to be pickable on Windows (spawn context).
395
396
 
396
397
  Args:
397
- result_queue (multiprocessing.Queue): Queue to store the result or exception.
398
- func (Callable): The target function to execute.
399
- args (tuple): Positional arguments for the function.
400
- kwargs (dict): Keyword arguments for the function.
398
+ result_queue (multiprocessing.Queue | None): Queue to store the result or exception (None if detached).
399
+ func (Callable): The target function to execute.
400
+ args (tuple): Positional arguments for the function.
401
+ kwargs (dict): Keyword arguments for the function.
401
402
  """
402
403
  try:
403
404
  result: R = func(*args, **kwargs)
404
- result_queue.put(result)
405
+ if result_queue is not None:
406
+ result_queue.put(result)
405
407
  except Exception as e:
406
- result_queue.put(e)
408
+ if result_queue is not None:
409
+ result_queue.put(e)
407
410
 
408
411
  # "Private" function to use starmap
409
412
  def _starmap[T, R](args: tuple[Callable[[T], R], list[T]]) -> R:
@@ -175,10 +175,10 @@ def _subprocess_wrapper[R](result_queue: Any, func: Callable[..., R], args: tupl
175
175
  \tMust be at module level to be pickable on Windows (spawn context).
176
176
 
177
177
  \tArgs:
178
- \t\tresult_queue (multiprocessing.Queue): Queue to store the result or exception.
179
- \t\tfunc (Callable): The target function to execute.
180
- \t\targs (tuple): Positional arguments for the function.
181
- \t\tkwargs (dict): Keyword arguments for the function.
178
+ \t\tresult_queue (multiprocessing.Queue | None): Queue to store the result or exception (None if detached).
179
+ \t\tfunc (Callable): The target function to execute.
180
+ \t\targs (tuple): Positional arguments for the function.
181
+ \t\tkwargs (dict): Keyword arguments for the function.
182
182
  \t"""
183
183
  def _starmap[T, R](args: tuple[Callable[[T], R], list[T]]) -> R:
184
184
  """ Private function to use starmap using args[0](\\*args[1])
File without changes