kevin-toolbox-dev 1.4.11__tar.gz → 1.4.12__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 (398) hide show
  1. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/PKG-INFO +9 -12
  2. kevin-toolbox-dev-1.4.12/README.md +38 -0
  3. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/__init__.py +2 -2
  4. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +2 -0
  5. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +1 -1
  6. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +1 -1
  7. kevin-toolbox-dev-1.4.12/kevin_toolbox/computer_science/algorithm/statistician/maximum_accumulator.py +80 -0
  8. kevin-toolbox-dev-1.4.12/kevin_toolbox/computer_science/algorithm/statistician/minimum_accumulator.py +34 -0
  9. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/__init__.py +3 -0
  10. kevin-toolbox-dev-1.4.12/kevin_toolbox/patches/for_matplotlib/common_charts/plot_2d_matrix.py +128 -0
  11. kevin-toolbox-dev-1.4.12/kevin_toolbox/patches/for_matplotlib/common_charts/plot_3d.py +198 -0
  12. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_bars.py +7 -4
  13. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_confusion_matrix.py +11 -4
  14. kevin-toolbox-dev-1.4.12/kevin_toolbox/patches/for_matplotlib/common_charts/plot_contour.py +157 -0
  15. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_distribution.py +19 -8
  16. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_lines.py +65 -21
  17. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters.py +9 -3
  18. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters_matrix.py +9 -3
  19. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/__init__.py +1 -0
  20. kevin-toolbox-dev-1.4.12/kevin_toolbox/patches/for_matplotlib/common_charts/utils/log_scaling.py +62 -0
  21. kevin-toolbox-dev-1.4.12/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_plot.py +28 -0
  22. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/__init__.py +1 -0
  23. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/linalg/softmax.py +4 -1
  24. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox_dev.egg-info/PKG-INFO +9 -12
  25. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox_dev.egg-info/SOURCES.txt +6 -0
  26. kevin-toolbox-dev-1.4.11/README.md +0 -41
  27. kevin-toolbox-dev-1.4.11/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_plot.py +0 -12
  28. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/__init__.py +0 -0
  29. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
  30. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +0 -0
  31. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/__init__.py +0 -0
  32. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/cache_base.py +0 -0
  33. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/memo_cache.py +0 -0
  34. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager.py +0 -0
  35. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager_wto_strategy.py +0 -0
  36. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/__init__.py +0 -0
  37. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/fifo_strategy.py +0 -0
  38. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lfu_strategy.py +0 -0
  39. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lru_strategy.py +0 -0
  40. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lst_strategy.py +0 -0
  41. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/strategy_base.py +0 -0
  42. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/test/__init__.py +0 -0
  43. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_builder.py +0 -0
  44. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_manager.py +0 -0
  45. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_strategy.py +0 -0
  46. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/cache_manager/variable.py +0 -0
  47. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
  48. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
  49. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
  50. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
  51. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
  52. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
  53. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/decorator/__init__.py +0 -0
  54. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/decorator/restore_original_work_path.py +0 -0
  55. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/decorator/retry.py +0 -0
  56. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
  57. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
  58. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
  59. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
  60. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
  61. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
  62. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +0 -0
  63. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
  64. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
  65. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
  66. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/for_seq/sample_subset_most_evenly.py +0 -0
  67. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
  68. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
  69. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
  70. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
  71. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_process_execute.py +0 -0
  72. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
  73. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/__init__.py +0 -0
  74. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_1.py +0 -0
  75. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_2.py +0 -0
  76. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
  77. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
  78. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/pareto_front/optimum_picker.py +0 -0
  79. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/redirector/__init__.py +0 -0
  80. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/redirector/redirectable_sequence_fetcher.py +0 -0
  81. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
  82. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/registration/registry.py +0 -0
  83. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/registration/serializer_for_registry_execution.py +0 -0
  84. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/sampler/__init__.py +0 -0
  85. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/sampler/reservoir_sampler.py +0 -0
  86. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
  87. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
  88. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
  89. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
  90. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
  91. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +0 -0
  92. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_for_ndl.py +0 -0
  93. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +0 -0
  94. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +0 -0
  95. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +0 -0
  96. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
  97. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
  98. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
  99. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/dangerous/__init__.py +0 -0
  100. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
  101. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/__init__.py +0 -0
  102. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/__init__.py +0 -0
  103. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
  104. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
  105. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/cache/test/__init__.py +0 -0
  106. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/cache/test/test_cache_manager_for_iterator.py +0 -0
  107. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
  108. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +0 -0
  109. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/reader/unified_reader.py +0 -0
  110. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
  111. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/__init__.py +0 -0
  112. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/excel/__init__.py +0 -0
  113. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/excel/write_excel_with_matrix.py +0 -0
  114. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
  115. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +0 -0
  116. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
  117. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
  118. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
  119. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py +0 -0
  120. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
  121. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
  122. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py +0 -0
  123. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/read_json.py +0 -0
  124. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/json_/write_json.py +0 -0
  125. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
  126. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
  127. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +0 -0
  128. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +0 -0
  129. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/read.py +0 -0
  130. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
  131. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
  132. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +0 -0
  133. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
  134. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
  135. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +0 -0
  136. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation_debug.py +0 -0
  137. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
  138. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
  139. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
  140. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/link/__init__.py +0 -0
  141. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/link/find_links.py +0 -0
  142. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/link/generate_link.py +0 -0
  143. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/__init__.py +0 -0
  144. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/convert/__init__.py +0 -0
  145. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/convert/complete_to_matrix.py +0 -0
  146. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/convert/matrix_to_complete.py +0 -0
  147. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/convert_format.py +0 -0
  148. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/find_tables.py +0 -0
  149. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/generate_table.py +0 -0
  150. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/get_format.py +0 -0
  151. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/padding_misaligned_values.py +0 -0
  152. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/table/variable.py +0 -0
  153. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/utils/__init__.py +0 -0
  154. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/data_flow/file/markdown/utils/save_images_in_ndl.py +0 -0
  155. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/__init__.py +0 -0
  156. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
  157. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
  158. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
  159. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
  160. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
  161. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
  162. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
  163. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
  164. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
  165. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
  166. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
  167. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
  168. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
  169. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
  170. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/temperate/__init__.py +0 -0
  171. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
  172. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
  173. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
  174. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
  175. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/developing/test.py +0 -0
  176. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/__init__.py +0 -0
  177. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
  178. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/check_version_and_update.py +0 -0
  179. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/test/__init__.py +0 -0
  180. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/test/test_check_.py +0 -0
  181. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/test/test_variable_.py +0 -0
  182. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/test/test_version.py +0 -0
  183. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/variable_/__init__.py +0 -0
  184. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/variable_/env_vars_parser.py +0 -0
  185. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/version/__init__.py +0 -0
  186. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/version/compare_version.py +0 -0
  187. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/version/parse_version.py +0 -0
  188. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
  189. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/__init__.py +0 -0
  190. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
  191. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
  192. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
  193. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
  194. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
  195. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
  196. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
  197. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
  198. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
  199. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
  200. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
  201. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
  202. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/__init__.py +0 -0
  203. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
  204. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
  205. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
  206. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
  207. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
  208. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
  209. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
  210. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
  211. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
  212. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
  213. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
  214. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
  215. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
  216. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
  217. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
  218. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
  219. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
  220. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
  221. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
  222. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
  223. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
  224. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
  225. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
  226. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
  227. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
  228. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
  229. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
  230. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
  231. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/__init__.py +0 -0
  232. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/__init__.py +0 -0
  233. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
  234. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
  235. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
  236. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
  237. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
  238. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
  239. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
  240. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
  241. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
  242. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
  243. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
  244. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
  245. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
  246. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
  247. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
  248. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
  249. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
  250. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
  251. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
  252. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
  253. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/__init__.py +0 -0
  254. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/cache.py +0 -0
  255. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
  256. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
  257. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
  258. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
  259. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
  260. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
  261. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
  262. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/__init__.py +0 -0
  263. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
  264. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
  265. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
  266. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
  267. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
  268. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/__init__.py +0 -0
  269. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
  270. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
  271. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
  272. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
  273. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/math/utils/split_integer_most_evenly.py +0 -0
  274. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
  275. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/copy_.py +0 -0
  276. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
  277. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
  278. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/get_nodes.py +0 -0
  279. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
  280. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
  281. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
  282. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
  283. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
  284. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/__init__.py +0 -0
  285. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
  286. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
  287. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
  288. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
  289. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
  290. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
  291. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
  292. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
  293. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
  294. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
  295. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
  296. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -0
  297. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/read.py +0 -0
  298. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/saved_node_name_builder.py +0 -0
  299. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/variable.py +0 -0
  300. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/serializer/write.py +0 -0
  301. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/set_default.py +0 -0
  302. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/set_value.py +0 -0
  303. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/traverse.py +0 -0
  304. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
  305. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
  306. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
  307. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
  308. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
  309. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py +0 -0
  310. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/__init__.py +0 -0
  311. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/download_file.py +0 -0
  312. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/fetch_content.py +0 -0
  313. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/fetch_metadata.py +0 -0
  314. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/get_response.py +0 -0
  315. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/network/variable.py +0 -0
  316. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/__init__.py +0 -0
  317. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_logging/__init__.py +0 -0
  318. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_logging/build_logger.py +0 -0
  319. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/__init__.py +0 -0
  320. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
  321. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
  322. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
  323. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/clear_border_of_axes.py +0 -0
  324. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/color/__init__.py +0 -0
  325. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/color/color_format.py +0 -0
  326. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/color/convert_format.py +0 -0
  327. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/color/generate_color_list.py +0 -0
  328. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/color/get_format.py +0 -0
  329. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_from_record.py +0 -0
  330. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/get_output_path.py +0 -0
  331. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_record.py +0 -0
  332. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_matplotlib/variable.py +0 -0
  333. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
  334. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
  335. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/linalg/entropy.py +0 -0
  336. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
  337. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/__init__.py +0 -0
  338. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/get_rng.py +0 -0
  339. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/get_rng_state.py +0 -0
  340. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/set_rng_state.py +0 -0
  341. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/truncated_multivariate_normal.py +0 -0
  342. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/truncated_normal.py +0 -0
  343. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_numpy/random/variable.py +0 -0
  344. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
  345. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/build_sampler.py +0 -0
  346. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/build_storage.py +0 -0
  347. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/build_study.py +0 -0
  348. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/copy_study.py +0 -0
  349. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +0 -0
  350. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/__init__.py +0 -0
  351. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_study/__init__.py +0 -0
  352. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_study/dump.py +0 -0
  353. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_study/load.py +0 -0
  354. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_trial/__init__.py +0 -0
  355. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_trial/dump.py +0 -0
  356. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_optuna/serialize/for_trial/load.py +0 -0
  357. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/__init__.py +0 -0
  358. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/copy.py +0 -0
  359. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/find_files_in_dir.py +0 -0
  360. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/organize/__init__.py +0 -0
  361. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/organize/group_files_by_timestamp.py +0 -0
  362. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/pack.py +0 -0
  363. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/path/__init__.py +0 -0
  364. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/path/find_illegal_chars.py +0 -0
  365. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/path/replace_illegal_chars.py +0 -0
  366. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/remove.py +0 -0
  367. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/unpack.py +0 -0
  368. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_os/walk.py +0 -0
  369. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_streamlit/__init__.py +0 -0
  370. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_streamlit/markdown/__init__.py +0 -0
  371. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_streamlit/markdown/show.py +0 -0
  372. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_streamlit/markdown/show_image.py +0 -0
  373. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_streamlit/markdown/show_table.py +0 -0
  374. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_test/__init__.py +0 -0
  375. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
  376. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/__init__.py +0 -0
  377. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
  378. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
  379. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
  380. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
  381. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
  382. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
  383. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
  384. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
  385. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
  386. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
  387. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
  388. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
  389. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
  390. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
  391. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/utils/__init__.py +0 -0
  392. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox/utils/variable.py +0 -0
  393. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
  394. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
  395. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
  396. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/pyproject.toml +0 -0
  397. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/setup.cfg +0 -0
  398. {kevin-toolbox-dev-1.4.11 → kevin-toolbox-dev-1.4.12}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kevin-toolbox-dev
3
- Version: 1.4.11
3
+ Version: 1.4.12
4
4
  Summary: 一个常用的工具代码包集合
5
5
  Home-page: https://github.com/cantbeblank96/kevin_toolbox
6
6
  Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
@@ -46,17 +46,14 @@ pip install kevin-toolbox --no-dependencies
46
46
 
47
47
  [版本更新记录](./notes/Release_Record.md):
48
48
 
49
- - v 1.4.11 (2025-04-16)【bug fix】
50
-
51
- - nested_dict_list
52
- - 【bug fixfix bug in value_parser.replace_identical_with_reference()
53
- - bug 描述:该函数的 _forward 中是通过 get_nodes 来获取各层节点,并记录节点的 id 和 level,这就导致某些节点由于其下具有不同长度的到叶节点的路径,因此节点会同时属于多个 level,最终导致其在 id_to_height_s 中被记录为有多个高度,这进一步导致其无法通过后面“具有相同 id 的节点所处的高度应该相同”的检验条件。
54
- - 解决:
55
- - 修复了 replace_identical_with_reference() 中的 _forward 部分,仅记录每个节点的最大高度。
56
- - 去除了“具有相同 id 的节点所处的高度应该相同”的检验条件。
57
- - computer_science.algorithm.redirector
58
- - 【bug fix】fix bug in Redirectable_Sequence_Fetcher,将 _randomly_idx_redirector 中的 rng.choices 改为 rng.choice
59
- - 添加了对应的测试用例。
49
+ - v 1.4.12 (2025-05-28)【bug fix】【new feature
50
+ - computer_science.algorithm.statistician
51
+ - 【new feature】add Maximum_Accumulator,用于计算最大值的累积器。
52
+ - 【new featureadd Minimum_Accumulator,用于计算最小值的累积器。
53
+
54
+ - patches.for_numpy.linalg
55
+ - 【bug fix】fix bug in softmax,修复了在 b_use_log_over_x=True 时 temperature 设为 None 导致计算失败的问题。
56
+
60
57
 
61
58
 
62
59
 
@@ -0,0 +1,38 @@
1
+ # kevin_toolbox
2
+
3
+ 一个通用的工具代码包集合
4
+
5
+
6
+
7
+ 环境要求
8
+
9
+ ```shell
10
+ numpy>=1.19
11
+ pytorch>=1.2
12
+ ```
13
+
14
+ 安装方法:
15
+
16
+ ```shell
17
+ pip install kevin-toolbox --no-dependencies
18
+ ```
19
+
20
+
21
+
22
+ [项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
23
+
24
+ [使用指南 User_Guide](./notes/User_Guide.md)
25
+
26
+ [免责声明 Disclaimer](./notes/Disclaimer.md)
27
+
28
+ [版本更新记录](./notes/Release_Record.md):
29
+
30
+ - v 1.4.12 (2025-05-28)【bug fix】【new feature】
31
+ - computer_science.algorithm.statistician
32
+ - 【new feature】add Maximum_Accumulator,用于计算最大值的累积器。
33
+ - 【new feature】add Minimum_Accumulator,用于计算最小值的累积器。
34
+
35
+ - patches.for_numpy.linalg
36
+ - 【bug fix】fix bug in softmax,修复了在 b_use_log_over_x=True 时 temperature 设为 None 导致计算失败的问题。
37
+
38
+
@@ -1,4 +1,4 @@
1
- __version__ = "1.4.11"
1
+ __version__ = "1.4.12"
2
2
 
3
3
 
4
4
  import os
@@ -12,5 +12,5 @@ os.system(
12
12
  os.system(
13
13
  f'python {os.path.split(__file__)[0]}/env_info/check_validity_and_uninstall.py '
14
14
  f'--package_name kevin-toolbox-dev '
15
- f'--expiration_timestamp 1760340881 --verbose 0'
15
+ f'--expiration_timestamp 1763992975 --verbose 0'
16
16
  )
@@ -2,3 +2,5 @@ from .accumulator_base import Accumulator_Base
2
2
  from .exponential_moving_average import Exponential_Moving_Average
3
3
  from .average_accumulator import Average_Accumulator
4
4
  from .accumulator_for_ndl import Accumulator_for_Ndl
5
+ from .maximum_accumulator import Maximum_Accumulator
6
+ from .minimum_accumulator import Minimum_Accumulator
@@ -27,7 +27,7 @@ class Average_Accumulator(Accumulator_Base):
27
27
  以上三种方式,默认选用最后一种。
28
28
  如果三种方式同时被指定,则优先级与对应方式在上面的排名相同。
29
29
  """
30
- super(Average_Accumulator, self).__init__(**kwargs)
30
+ super().__init__(**kwargs)
31
31
 
32
32
  def add_sequence(self, var_ls, **kwargs):
33
33
  for var in var_ls:
@@ -56,7 +56,7 @@ class Exponential_Moving_Average(Accumulator_Base):
56
56
  # 校验参数
57
57
  assert isinstance(paras["keep_ratio"], (int, float,)) and 0 <= paras["keep_ratio"] <= 1
58
58
  #
59
- super(Exponential_Moving_Average, self).__init__(**paras)
59
+ super().__init__(**paras)
60
60
 
61
61
  def add_sequence(self, var_ls, **kwargs):
62
62
  for var in var_ls:
@@ -0,0 +1,80 @@
1
+ import numpy as np
2
+ import torch
3
+ from kevin_toolbox.computer_science.algorithm.statistician import Accumulator_Base
4
+
5
+
6
+ class Maximum_Accumulator(Accumulator_Base):
7
+ """
8
+ 用于计算最大值的累积器
9
+ """
10
+
11
+ def __init__(self, **kwargs):
12
+ """
13
+ 参数:
14
+ data_format: 指定数据格式
15
+ like: 指定数据格式
16
+ 指定输入数据的格式,有三种方式:
17
+ 1. 显式指定数据的形状和所在设备等。
18
+ data_format: <dict of paras>
19
+ 其中需要包含以下参数:
20
+ type_: <str>
21
+ "numpy": np.ndarray
22
+ "torch": torch.tensor
23
+ shape: <list of integers>
24
+ device: <torch.device>
25
+ dtype: <torch.dtype>
26
+ 2. 根据输入的数据,来推断出形状、设备等。
27
+ like: <torch.tensor / np.ndarray / int / float>
28
+ 3. 均不指定 data_format 和 like,此时将等到第一次调用 add()/add_sequence() 时再根据输入来自动推断。
29
+ 以上三种方式,默认选用最后一种。
30
+ 如果三种方式同时被指定,则优先级与对应方式在上面的排名相同。
31
+ """
32
+ super().__init__(**kwargs)
33
+
34
+ def add_sequence(self, var_ls, **kwargs):
35
+ for var in var_ls:
36
+ self.add(var, **kwargs)
37
+
38
+ def add(self, var, **kwargs):
39
+ """
40
+ 添加单个数据
41
+
42
+ 参数:
43
+ var: 数据
44
+ """
45
+ if self.var is None:
46
+ self.var = var
47
+ else:
48
+ # 统计
49
+ if torch.is_tensor(var):
50
+ self.var = torch.maximum(self.var, var)
51
+ else:
52
+ self.var = np.maximum(self.var, var)
53
+ self.state["total_nums"] += 1
54
+
55
+ def get(self, **kwargs):
56
+ """
57
+ 获取当前累加的平均值
58
+ 当未有累积时,返回 None
59
+ """
60
+ if len(self) == 0:
61
+ return None
62
+ return self.var
63
+
64
+ @staticmethod
65
+ def _init_state():
66
+ """
67
+ 初始化状态
68
+ """
69
+ return dict(
70
+ total_nums=0
71
+ )
72
+
73
+
74
+ if __name__ == '__main__':
75
+
76
+ seq = list(torch.tensor(range(1, 10))-5)
77
+ avg = Maximum_Accumulator()
78
+ for i, v in enumerate(seq):
79
+ avg.add(var=v)
80
+ print(i, v, avg.get())
@@ -0,0 +1,34 @@
1
+ import numpy as np
2
+ import torch
3
+ from kevin_toolbox.computer_science.algorithm.statistician import Maximum_Accumulator
4
+
5
+
6
+ class Minimum_Accumulator(Maximum_Accumulator):
7
+ """
8
+ 用于计算最小值的累积器
9
+ """
10
+
11
+ def add(self, var, **kwargs):
12
+ """
13
+ 添加单个数据
14
+
15
+ 参数:
16
+ var: 数据
17
+ """
18
+ if self.var is None:
19
+ self.var = var
20
+ else:
21
+ # 统计
22
+ if torch.is_tensor(var):
23
+ self.var = torch.minimum(self.var, var)
24
+ else:
25
+ self.var = np.minimum(self.var, var)
26
+ self.state["total_nums"] += 1
27
+
28
+
29
+ if __name__ == '__main__':
30
+ seq = list(torch.tensor(range(1, 10)) + 5)
31
+ avg = Minimum_Accumulator()
32
+ for i, v in enumerate(seq):
33
+ avg.add(var=v)
34
+ print(i, v, avg.get())
@@ -48,4 +48,7 @@ from .plot_distribution import plot_distribution
48
48
  from .plot_bars import plot_bars
49
49
  from .plot_scatters_matrix import plot_scatters_matrix
50
50
  from .plot_confusion_matrix import plot_confusion_matrix
51
+ from .plot_2d_matrix import plot_2d_matrix
52
+ from .plot_contour import plot_contour
53
+ from .plot_3d import plot_3d
51
54
  from .plot_from_record import plot_from_record
@@ -0,0 +1,128 @@
1
+ import copy
2
+ import numpy as np
3
+ import matplotlib.pyplot as plt
4
+ import seaborn as sns
5
+ from kevin_toolbox.patches.for_matplotlib.common_charts.utils import save_plot, save_record, get_output_path
6
+ from kevin_toolbox.patches.for_matplotlib.variable import COMMON_CHARTS
7
+
8
+ __name = ":common_charts:plot_matrix"
9
+
10
+
11
+ @COMMON_CHARTS.register(name=__name)
12
+ def plot_2d_matrix(matrix, title, row_label="row", column_label="column", x_tick_labels=None, y_tick_labels=None,
13
+ output_dir=None, output_path=None, replace_zero_division_with=0, **kwargs):
14
+ """
15
+ 计算并绘制混淆矩阵
16
+
17
+ 参数:
18
+ matrix: <np.ndarray> 矩阵
19
+ row_label: <str> 行标签。
20
+ column_label: <str> 列标签。
21
+ title: <str> 绘图标题,同时用于保存图片的文件名。
22
+ output_dir: <str or None>
23
+ 图像保存的输出目录。如果同时指定了 output_path,则以 output_path 为准。
24
+ 若 output_dir 和 output_path 均未指定,则图像将直接通过 plt.show() 显示而不会保存到文件。
25
+
26
+ output_dir: <str> 图片输出目录。
27
+ output_path: <str> 图片输出路径。
28
+ 以上两个只需指定一个即可,同时指定时以后者为准。
29
+ 当只有 output_dir 被指定时,将会以 title 作为图片名。
30
+ 若同时不指定,则直接以 np.ndarray 形式返回图片,不进行保存。
31
+ 在保存为文件时,若文件名中存在路径不适宜的非法字符将会被进行替换。
32
+ replace_zero_division_with: <float> 在归一化混淆矩阵时,如果遇到除0错误的情况,将使用该值进行替代。
33
+ 建议使用 np.nan 或 0,默认值为 0。
34
+
35
+ 其他可选参数:
36
+ dpi: <int> 图像保存的分辨率。
37
+ suffix: <str> 图片保存后缀。
38
+ 目前支持的取值有 ".png", ".jpg", ".bmp",默认为第一个。
39
+ normalize: <str or None> 指定归一化方式。
40
+ 可选值包括:
41
+ "row"(按行归一化)
42
+ "column"(按列归一化)
43
+ "all"(整体归一化)
44
+ 默认为 None 表示不归一化。
45
+ value_fmt: <str> 矩阵元素数值的显示方式。
46
+ b_return_matrix: <bool> 是否在返回值中包含(当使用 normalize 操作时)修改后的矩阵。
47
+ 默认为 False。
48
+ b_generate_record: <boolean> 是否保存函数参数为档案。
49
+ 默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
50
+ 后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
51
+ 该参数仅在 output_dir 和 output_path 非 None 时起效。
52
+ b_show_plot: <boolean> 是否使用 plt.show() 展示图片。
53
+ 默认为 False
54
+ b_bgr_image: <boolean> 以 np.ndarray 形式返回图片时,图片的channel顺序是采用 bgr 还是 rgb。
55
+ 默认为 True
56
+ """
57
+ paras = {
58
+ "dpi": 200,
59
+ "suffix": ".png",
60
+ "b_generate_record": False,
61
+ "b_show_plot": False,
62
+ "b_bgr_image": True,
63
+ "normalize": None, # "true", "pred", "all",
64
+ "b_return_matrix": False, # 是否输出混淆矩阵
65
+
66
+ }
67
+ paras.update(kwargs)
68
+ matrix = np.asarray(matrix)
69
+ paras.setdefault("value_fmt",
70
+ '.2%' if paras["normalize"] is not None or np.issubdtype(matrix.dtype, np.floating) else 'd')
71
+ #
72
+ _output_path = get_output_path(output_path=output_path, output_dir=output_dir, title=title, **kwargs)
73
+ save_record(_func=plot_2d_matrix, _name=__name,
74
+ _output_path=_output_path if paras["b_generate_record"] else None,
75
+ **paras)
76
+ matrix = copy.deepcopy(matrix)
77
+
78
+ # replace with nan
79
+ if paras["normalize"] is not None:
80
+ if paras["normalize"] == "all":
81
+ if matrix.sum() == 0:
82
+ matrix[matrix == 0] = replace_zero_division_with
83
+ matrix = matrix / matrix.sum()
84
+ else:
85
+ check_axis = 1 if paras["normalize"] == "row" else 0
86
+ temp = np.sum(matrix, axis=check_axis, keepdims=False)
87
+ for i in range(len(temp)):
88
+ if temp[i] == 0:
89
+ if check_axis == 0:
90
+ matrix[:, i] = replace_zero_division_with
91
+ else:
92
+ matrix[i, :] = replace_zero_division_with
93
+ matrix = matrix / np.sum(matrix, axis=check_axis, keepdims=True)
94
+
95
+ # 绘制混淆矩阵热力图
96
+ plt.clf()
97
+ plt.figure(figsize=(8, 6))
98
+ sns.heatmap(matrix, annot=True, fmt=paras["value_fmt"],
99
+ xticklabels=x_tick_labels if x_tick_labels is not None else "auto",
100
+ yticklabels=y_tick_labels if y_tick_labels is not None else "auto",
101
+ cmap='viridis')
102
+
103
+ plt.xlabel(f'{column_label}')
104
+ plt.ylabel(f'{row_label}')
105
+ plt.title(f'{title}')
106
+
107
+ save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"])
108
+
109
+ if paras["b_return_matrix"]:
110
+ return _output_path, matrix
111
+ else:
112
+ return _output_path
113
+
114
+
115
+ if __name__ == '__main__':
116
+ import os
117
+
118
+ # 示例真实标签和预测标签
119
+ A = np.random.randint(0, 5, (5, 5))
120
+ print(A)
121
+
122
+ plot_2d_matrix(
123
+ matrix=np.random.randint(0, 5, (5, 5)),
124
+ title="2D Matrix",
125
+ output_dir=os.path.join(os.path.dirname(__file__), "temp"),
126
+ replace_zero_division_with=-1,
127
+ normalize="row"
128
+ )
@@ -0,0 +1,198 @@
1
+ import numpy as np
2
+ import matplotlib.pyplot as plt
3
+ from mpl_toolkits.mplot3d import Axes3D # 兼容部分旧版 matplotlib
4
+ from scipy.interpolate import griddata
5
+ from kevin_toolbox.patches.for_matplotlib.color import generate_color_list
6
+ from kevin_toolbox.patches.for_matplotlib.common_charts.utils import save_plot, save_record, get_output_path, \
7
+ log_scaling
8
+ from kevin_toolbox.patches.for_matplotlib.variable import COMMON_CHARTS
9
+
10
+ __name = ":common_charts:plot_3d"
11
+
12
+
13
+ @COMMON_CHARTS.register(name=__name)
14
+ def plot_3d(data_s, title, x_name, y_name, z_name, cate_name=None, type_=("scatter", "smooth_surf"), output_dir=None,
15
+ output_path=None, **kwargs):
16
+ """
17
+ 绘制3D图
18
+ 支持:散点图、三角剖分曲面及其平滑版本
19
+
20
+
21
+ 参数:
22
+ data_s: <dict> 数据。
23
+ 形如 {<data_name>: <data list>, ...} 的字典
24
+ 需要包含 x、y、z 三个键值对,分别对应 x、y、z 轴的数据。
25
+ title: <str> 绘图标题。
26
+ x_name: <str> x 轴的数据键名。
27
+ y_name: <str> y 轴的数据键名。
28
+ z_name: <str> z 轴的数据键名。
29
+ cate_name: <str> 以哪个 data_name 作为数据点的类别。
30
+ type_: <str/list of str> 图表类型。
31
+ 目前支持以下取值,或者以下取值的列表:
32
+ - "scatter" 散点图
33
+ - "tri_surf" 三角曲面
34
+ - "smooth_surf" 平滑曲面
35
+ 当指定列表时,将会绘制多个图表的混合。
36
+ output_dir: <str> 图片输出目录。
37
+ output_path: <str> 图片输出路径。
38
+ 以上两个只需指定一个即可,同时指定时以后者为准。
39
+ 当只有 output_dir 被指定时,将会以 title 作为图片名。
40
+ 若同时不指定,则直接以 np.ndarray 形式返回图片,不进行保存。
41
+ 在保存为文件时,若文件名中存在路径不适宜的非法字符将会被进行替换。
42
+
43
+ 其他可选参数:
44
+ dpi: <int> 保存图像的分辨率。
45
+ 默认为 200。
46
+ suffix: <str> 图片保存后缀。
47
+ 目前支持的取值有 ".png", ".jpg", ".bmp",默认为第一个。
48
+ b_generate_record: <boolean> 是否保存函数参数为档案。
49
+ 默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
50
+ 后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
51
+ 该参数仅在 output_dir 和 output_path 非 None 时起效。
52
+ b_show_plot: <boolean> 是否使用 plt.show() 展示图片。
53
+ 默认为 False
54
+ b_bgr_image: <boolean> 以 np.ndarray 形式返回图片时,图片的channel顺序是采用 bgr 还是 rgb。
55
+ 默认为 True
56
+ scatter_size: <int> 散点大小,默认 30。
57
+ cate_of_surf: <str or list of str> 使用哪些类别的数据来绘制曲面。
58
+ 默认为 None,表示使用所有类别的数据来绘制曲面。
59
+ 仅当 cate_name 非 None 时该参数起效。
60
+ tri_surf_cmap: <str> 三角剖分曲面的颜色映射,默认 "viridis"。
61
+ tri_surf_alpha: <float> 三角剖分曲面的透明度,默认 0.6。
62
+ smooth_surf_cmap: <str> 平滑曲面的颜色映射,默认 "coolwarm"。
63
+ smooth_surf_alpha: <float> 平滑曲面的透明度,默认 0.6。
64
+ smooth_surf_method: <str> 平滑的方法。
65
+ 支持以下取值:
66
+ - "linear"
67
+ - "cubic"
68
+ view_elev: <float> 视角中的仰角,默认 30。
69
+ view_azim: <float> 视角中的方位角,默认 45。
70
+ x_log_scale,y_log_scale,z_log_scale: <int/float> 对 x,y,z 轴数据使用哪个底数进行对数显示。
71
+ 默认为 None,此时表示不使用对数显示。
72
+ x_ticks,...: <int/list of float or int> 在哪个数字下添加坐标记号。
73
+ 默认为 None,表示不添加记号。
74
+ 当设置为 int 时,表示自动根据 x,y,z 数据的范围,选取等间隔选取多少个坐标作为记号。
75
+ x_tick_labels,...: <int/list> 坐标记号的label。
76
+ """
77
+ # 默认参数设置
78
+ paras = {
79
+ "dpi": 200,
80
+ "suffix": ".png",
81
+ "b_generate_record": False,
82
+ "b_show_plot": False,
83
+ "b_bgr_image": True,
84
+ "scatter_size": 30,
85
+ "cate_of_surf": None,
86
+ "tri_surf_cmap": "viridis",
87
+ "tri_surf_alpha": 0.6,
88
+ "smooth_surf_cmap": "coolwarm",
89
+ "smooth_surf_alpha": 0.6,
90
+ "smooth_surf_method": "linear",
91
+ "view_elev": 30,
92
+ "view_azim": 45,
93
+ "x_log_scale": None,
94
+ "x_ticks": None,
95
+ "x_tick_labels": None,
96
+ "y_log_scale": None,
97
+ "y_ticks": None,
98
+ "y_tick_labels": None,
99
+ "z_log_scale": None,
100
+ "z_ticks": None,
101
+ "z_tick_labels": None,
102
+ }
103
+ paras.update(kwargs)
104
+ #
105
+ _output_path = get_output_path(output_path=output_path, output_dir=output_dir, title=title, **kwargs)
106
+ save_record(_func=plot_3d, _name=__name,
107
+ _output_path=_output_path if paras["b_generate_record"] else None,
108
+ **paras)
109
+ data_s = data_s.copy()
110
+ if isinstance(type_, str):
111
+ type_ = [type_]
112
+ #
113
+ d_s = dict()
114
+ ticks_s = dict()
115
+ tick_labels_s = dict()
116
+ for k in ("x", "y", "z"):
117
+ d_s[k], ticks_s[k], tick_labels_s[k] = log_scaling(
118
+ x_ls=data_s[eval(f'{k}_name')], log_scale=paras[f"{k}_log_scale"],
119
+ ticks=paras[f"{k}_ticks"], tick_labels=paras[f"{k}_tick_labels"]
120
+ )
121
+
122
+ x, y, z = [d_s[i].reshape(-1) for i in ("x", "y", "z")]
123
+ color_s = None
124
+ cate_of_surf = None
125
+ if cate_name is not None:
126
+ cates = list(set(data_s[cate_name]))
127
+ color_s = {i: j for i, j in zip(cates, generate_color_list(nums=len(cates)))}
128
+ c = [color_s[i] for i in data_s[cate_name]]
129
+ if paras["cate_of_surf"] is not None:
130
+ temp = [paras["cate_of_surf"], ] if isinstance(paras["cate_of_surf"], str) else paras[
131
+ "cate_of_surf"]
132
+ cate_of_surf = [i in temp for i in data_s[cate_name]]
133
+ else:
134
+ c = "red"
135
+
136
+ plt.clf()
137
+ fig = plt.figure(figsize=(10, 8))
138
+ ax = fig.add_subplot(111, projection='3d')
139
+
140
+ # 绘制数据点
141
+ if "scatter" in type_:
142
+ ax.scatter(x, y, z, s=paras["scatter_size"], c=c, depthshade=True)
143
+
144
+ if cate_of_surf is not None:
145
+ x, y, z = x[cate_of_surf], y[cate_of_surf], z[cate_of_surf]
146
+
147
+ # 绘制基于三角剖分的曲面(不平滑)
148
+ if "tri_surf" in type_:
149
+ tri_surf = ax.plot_trisurf(x, y, z, cmap=paras["tri_surf_cmap"], alpha=paras["tri_surf_alpha"])
150
+
151
+ # 构造规则网格,用于平滑曲面插值
152
+ if "smooth_surf" in type_:
153
+ grid_x, grid_y = np.mgrid[x.min():x.max():100j, y.min():y.max():100j]
154
+ grid_z = griddata((x, y), z, (grid_x, grid_y), method=paras["smooth_surf_method"])
155
+ # 绘制平滑曲面
156
+ smooth_surf = ax.plot_surface(grid_x, grid_y, grid_z, cmap=paras["smooth_surf_cmap"],
157
+ edgecolor='none', alpha=paras["smooth_surf_alpha"])
158
+ # 添加颜色条以展示平滑曲面颜色与 z 值的对应关系
159
+ cbar = fig.colorbar(smooth_surf, ax=ax, shrink=0.5, aspect=10)
160
+ cbar.set_label(z_name, fontsize=12)
161
+
162
+ # 设置坐标轴标签和图形标题
163
+ ax.set_xlabel(x_name, fontsize=12)
164
+ ax.set_ylabel(y_name, fontsize=12)
165
+ ax.set_zlabel(z_name, fontsize=12)
166
+ ax.set_title(title, fontsize=14)
167
+ for i in ("x", "y", "z"):
168
+ if ticks_s[i] is not None:
169
+ getattr(ax, f'set_{i}ticks')(ticks_s[i])
170
+ getattr(ax, f'set_{i}ticklabels')(tick_labels_s[i])
171
+
172
+ # 调整视角
173
+ ax.view_init(elev=paras["view_elev"], azim=paras["view_azim"])
174
+
175
+ # 创建图例
176
+ if "scatter" in type_ and cate_name is not None:
177
+ plt.legend(handles=[
178
+ plt.Line2D([0], [0], marker='o', color='w', label=i, markerfacecolor=j,
179
+ markersize=min(paras["scatter_size"], 5)) for i, j in color_s.items()
180
+ ])
181
+
182
+ return save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"],
183
+ b_bgr_image=paras["b_bgr_image"], b_show_plot=paras["b_show_plot"])
184
+
185
+
186
+ if __name__ == '__main__':
187
+ # 示例用法:生成示例数据并绘制3D图像
188
+ np.random.seed(42)
189
+ num_points = 200
190
+ data = {
191
+ 'x': np.random.uniform(-5, 5, num_points),
192
+ 'y': np.random.uniform(-5, 5, num_points),
193
+ "c": np.random.uniform(-5, 5, num_points) > 0.3,
194
+ }
195
+ # 示例 z 值:例如 z = sin(sqrt(x^2+y^2))
196
+ data['z'] = np.sin(np.sqrt(data['x'] ** 2 + data['y'] ** 2)) + 1.1
197
+ plot_3d(data, x_name='x', y_name='y', z_name='z', cate_name="c", title="3D Surface Plot", z_log_scale=10, z_ticks=5,
198
+ type_=("scatter"), output_dir="./temp")
@@ -27,7 +27,7 @@ def plot_bars(data_s, title, x_name, output_dir=None, output_path=None, **kwargs
27
27
  output_path: <str or None> 图片输出路径。
28
28
  以上两个只需指定一个即可,同时指定时以后者为准。
29
29
  当只有 output_dir 被指定时,将会以 title 作为图片名。
30
- 若同时不指定,则直接调用 plt.show() 显示图像,而不进行保存。
30
+ 若同时不指定,则直接以 np.ndarray 形式返回图片,不进行保存。
31
31
  在保存为文件时,若文件名中存在路径不适宜的非法字符将会被进行替换。
32
32
 
33
33
  其他可选参数:
@@ -39,6 +39,10 @@ def plot_bars(data_s, title, x_name, output_dir=None, output_path=None, **kwargs
39
39
  默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
40
40
  后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
41
41
  该参数仅在 output_dir 和 output_path 非 None 时起效。
42
+ b_show_plot: <boolean> 是否使用 plt.show() 展示图片。
43
+ 默认为 False
44
+ b_bgr_image: <boolean> 以 np.ndarray 形式返回图片时,图片的channel顺序是采用 bgr 还是 rgb。
45
+ 默认为 True
42
46
 
43
47
  返回值:
44
48
  若 output_dir 非 None,则返回图像保存的文件路径。
@@ -78,9 +82,8 @@ def plot_bars(data_s, title, x_name, output_dir=None, output_path=None, **kwargs
78
82
  # 显示图例
79
83
  plt.legend()
80
84
 
81
- save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"])
82
-
83
- return _output_path
85
+ return save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"],
86
+ b_bgr_image=paras["b_bgr_image"], b_show_plot=paras["b_show_plot"])
84
87
 
85
88
 
86
89
  if __name__ == '__main__':
@@ -30,7 +30,7 @@ def plot_confusion_matrix(data_s, title, gt_name, pd_name, label_to_value_s=None
30
30
  output_path: <str> 图片输出路径。
31
31
  以上两个只需指定一个即可,同时指定时以后者为准。
32
32
  当只有 output_dir 被指定时,将会以 title 作为图片名。
33
- 若同时不指定,则直接调用 plt.show() 显示图像,而不进行保存。
33
+ 若同时不指定,则直接以 np.ndarray 形式返回图片,不进行保存。
34
34
  在保存为文件时,若文件名中存在路径不适宜的非法字符将会被进行替换。
35
35
  replace_zero_division_with: <float> 在归一化混淆矩阵时,如果遇到除0错误的情况,将使用该值进行替代。
36
36
  建议使用 np.nan 或 0,默认值为 0。
@@ -51,6 +51,10 @@ def plot_confusion_matrix(data_s, title, gt_name, pd_name, label_to_value_s=None
51
51
  默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
52
52
  后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
53
53
  该参数仅在 output_dir 和 output_path 非 None 时起效。
54
+ b_show_plot: <boolean> 是否使用 plt.show() 展示图片。
55
+ 默认为 False
56
+ b_bgr_image: <boolean> 以 np.ndarray 形式返回图片时,图片的channel顺序是采用 bgr 还是 rgb。
57
+ 默认为 True
54
58
 
55
59
  返回值:
56
60
  当 b_return_cfm 为 True 时,返回值可能为一个包含 (图像路径, 混淆矩阵数据) 的元组。
@@ -59,6 +63,8 @@ def plot_confusion_matrix(data_s, title, gt_name, pd_name, label_to_value_s=None
59
63
  "dpi": 200,
60
64
  "suffix": ".png",
61
65
  "b_generate_record": False,
66
+ "b_show_plot": False,
67
+ "b_bgr_image": True,
62
68
  "normalize": None, # "true", "pred", "all",
63
69
  "b_return_cfm": False, # 是否输出混淆矩阵
64
70
  }
@@ -105,12 +111,13 @@ def plot_confusion_matrix(data_s, title, gt_name, pd_name, label_to_value_s=None
105
111
  plt.ylabel(f'{gt_name}')
106
112
  plt.title(f'{title}')
107
113
 
108
- save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"])
114
+ res = save_plot(plt=plt, output_path=_output_path, dpi=paras["dpi"], suffix=paras["suffix"],
115
+ b_bgr_image=paras["b_bgr_image"], b_show_plot=paras["b_show_plot"])
109
116
 
110
117
  if paras["b_return_cfm"]:
111
- return _output_path, cfm
118
+ return res, cfm
112
119
  else:
113
- return _output_path
120
+ return res
114
121
 
115
122
 
116
123
  if __name__ == '__main__':