kevin-toolbox-dev 1.4.8__tar.gz → 1.4.9__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 (387) hide show
  1. kevin-toolbox-dev-1.4.9/PKG-INFO +70 -0
  2. kevin-toolbox-dev-1.4.9/README.md +49 -0
  3. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/__init__.py +2 -2
  4. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/write_json.py +2 -1
  5. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/check_version_and_update.py +0 -1
  6. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/copy_.py +4 -2
  7. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/get_nodes.py +4 -2
  8. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/traverse.py +75 -21
  9. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py +1 -4
  10. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/color/convert_format.py +0 -2
  11. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_plot.py +1 -0
  12. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/linalg/softmax.py +4 -1
  13. kevin-toolbox-dev-1.4.9/kevin_toolbox_dev.egg-info/PKG-INFO +70 -0
  14. kevin-toolbox-dev-1.4.8/PKG-INFO +0 -81
  15. kevin-toolbox-dev-1.4.8/README.md +0 -60
  16. kevin-toolbox-dev-1.4.8/kevin_toolbox_dev.egg-info/PKG-INFO +0 -81
  17. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/__init__.py +0 -0
  18. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
  19. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +0 -0
  20. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/__init__.py +0 -0
  21. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/cache_base.py +0 -0
  22. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/memo_cache.py +0 -0
  23. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager.py +0 -0
  24. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/__init__.py +0 -0
  25. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/fifo_strategy.py +0 -0
  26. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lfu_strategy.py +0 -0
  27. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lru_strategy.py +0 -0
  28. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lst_strategy.py +0 -0
  29. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/strategy_base.py +0 -0
  30. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/test/__init__.py +0 -0
  31. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_builder.py +0 -0
  32. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_manager.py +0 -0
  33. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_strategy.py +0 -0
  34. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/cache_manager/variable.py +0 -0
  35. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
  36. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
  37. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
  38. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
  39. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
  40. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
  41. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/decorator/__init__.py +0 -0
  42. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/decorator/restore_original_work_path.py +0 -0
  43. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/decorator/retry.py +0 -0
  44. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
  45. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
  46. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
  47. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
  48. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
  49. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
  50. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +0 -0
  51. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
  52. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
  53. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
  54. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
  55. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
  56. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
  57. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
  58. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_process_execute.py +0 -0
  59. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
  60. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/__init__.py +0 -0
  61. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_1.py +0 -0
  62. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_2.py +0 -0
  63. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
  64. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
  65. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/pareto_front/optimum_picker.py +0 -0
  66. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
  67. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/registration/registry.py +0 -0
  68. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/registration/serializer_for_registry_execution.py +0 -0
  69. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
  70. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
  71. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
  72. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
  73. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
  74. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +0 -0
  75. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +0 -0
  76. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_for_ndl.py +0 -0
  77. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +0 -0
  78. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +0 -0
  79. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +0 -0
  80. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +0 -0
  81. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +0 -0
  82. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
  83. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
  84. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
  85. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/dangerous/__init__.py +0 -0
  86. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
  87. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/__init__.py +0 -0
  88. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/__init__.py +0 -0
  89. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
  90. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
  91. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/cache/test/__init__.py +0 -0
  92. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/cache/test/test_cache_manager_for_iterator.py +0 -0
  93. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
  94. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +0 -0
  95. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/reader/unified_reader.py +0 -0
  96. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
  97. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/__init__.py +0 -0
  98. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/excel/__init__.py +0 -0
  99. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/excel/write_excel_with_matrix.py +0 -0
  100. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
  101. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +0 -0
  102. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
  103. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
  104. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
  105. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py +0 -0
  106. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
  107. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
  108. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py +0 -0
  109. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/json_/read_json.py +0 -0
  110. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
  111. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
  112. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +0 -0
  113. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +0 -0
  114. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/read.py +0 -0
  115. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
  116. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
  117. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +0 -0
  118. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
  119. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
  120. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +0 -0
  121. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation_debug.py +0 -0
  122. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
  123. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
  124. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
  125. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/link/__init__.py +0 -0
  126. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/link/find_links.py +0 -0
  127. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/link/generate_link.py +0 -0
  128. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/__init__.py +0 -0
  129. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/convert/__init__.py +0 -0
  130. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/convert/complete_to_matrix.py +0 -0
  131. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/convert/matrix_to_complete.py +0 -0
  132. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/convert_format.py +0 -0
  133. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/find_tables.py +0 -0
  134. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/generate_table.py +0 -0
  135. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/get_format.py +0 -0
  136. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/padding_misaligned_values.py +0 -0
  137. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/table/variable.py +0 -0
  138. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/utils/__init__.py +0 -0
  139. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/data_flow/file/markdown/utils/save_images_in_ndl.py +0 -0
  140. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/__init__.py +0 -0
  141. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
  142. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
  143. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
  144. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
  145. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
  146. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
  147. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
  148. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
  149. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
  150. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
  151. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
  152. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
  153. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
  154. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
  155. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/temperate/__init__.py +0 -0
  156. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
  157. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
  158. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
  159. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
  160. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/developing/test.py +0 -0
  161. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/__init__.py +0 -0
  162. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
  163. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/test/__init__.py +0 -0
  164. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/test/test_check_.py +0 -0
  165. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/test/test_variable_.py +0 -0
  166. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/test/test_version.py +0 -0
  167. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/variable_/__init__.py +0 -0
  168. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/variable_/env_vars_parser.py +0 -0
  169. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/version/__init__.py +0 -0
  170. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/version/compare_version.py +0 -0
  171. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/version/parse_version.py +0 -0
  172. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
  173. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/__init__.py +0 -0
  174. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
  175. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
  176. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
  177. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
  178. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
  179. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
  180. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
  181. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
  182. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
  183. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
  184. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
  185. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
  186. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/__init__.py +0 -0
  187. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
  188. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
  189. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
  190. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
  191. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
  192. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
  193. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
  194. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
  195. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
  196. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
  197. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
  198. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
  199. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
  200. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
  201. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
  202. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
  203. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
  204. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
  205. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
  206. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
  207. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
  208. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
  209. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
  210. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
  211. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
  212. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
  213. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
  214. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
  215. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/__init__.py +0 -0
  216. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/__init__.py +0 -0
  217. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
  218. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
  219. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
  220. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
  221. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
  222. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
  223. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
  224. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
  225. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
  226. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
  227. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
  228. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
  229. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
  230. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
  231. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
  232. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
  233. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
  234. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
  235. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
  236. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
  237. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/__init__.py +0 -0
  238. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/cache.py +0 -0
  239. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
  240. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
  241. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
  242. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
  243. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
  244. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
  245. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
  246. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/__init__.py +0 -0
  247. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
  248. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
  249. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
  250. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
  251. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
  252. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/__init__.py +0 -0
  253. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
  254. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
  255. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
  256. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
  257. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/math/utils/split_integer_most_evenly.py +0 -0
  258. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
  259. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
  260. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
  261. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
  262. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
  263. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
  264. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
  265. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
  266. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/__init__.py +0 -0
  267. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
  268. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
  269. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
  270. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
  271. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
  272. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
  273. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
  274. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
  275. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
  276. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
  277. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
  278. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -0
  279. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/read.py +0 -0
  280. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/saved_node_name_builder.py +0 -0
  281. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/variable.py +0 -0
  282. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/serializer/write.py +0 -0
  283. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/set_default.py +0 -0
  284. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/set_value.py +0 -0
  285. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
  286. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
  287. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
  288. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
  289. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
  290. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/__init__.py +0 -0
  291. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/download_file.py +0 -0
  292. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/fetch_content.py +0 -0
  293. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/fetch_metadata.py +0 -0
  294. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/get_response.py +0 -0
  295. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/network/variable.py +0 -0
  296. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/__init__.py +0 -0
  297. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_logging/__init__.py +0 -0
  298. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_logging/build_logger.py +0 -0
  299. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/__init__.py +0 -0
  300. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
  301. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
  302. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
  303. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/clear_border_of_axes.py +0 -0
  304. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/color/__init__.py +0 -0
  305. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/color/color_format.py +0 -0
  306. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/color/generate_color_list.py +0 -0
  307. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/color/get_format.py +0 -0
  308. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/__init__.py +0 -0
  309. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_bars.py +0 -0
  310. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_confusion_matrix.py +0 -0
  311. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_distribution.py +0 -0
  312. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_from_record.py +0 -0
  313. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_lines.py +0 -0
  314. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters.py +0 -0
  315. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters_matrix.py +0 -0
  316. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/__init__.py +0 -0
  317. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/get_output_path.py +0 -0
  318. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_record.py +0 -0
  319. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_matplotlib/variable.py +0 -0
  320. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/__init__.py +0 -0
  321. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
  322. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
  323. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/linalg/entropy.py +0 -0
  324. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
  325. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/__init__.py +0 -0
  326. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/get_rng.py +0 -0
  327. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/get_rng_state.py +0 -0
  328. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/set_rng_state.py +0 -0
  329. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/truncated_multivariate_normal.py +0 -0
  330. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/truncated_normal.py +0 -0
  331. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_numpy/random/variable.py +0 -0
  332. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
  333. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/build_sampler.py +0 -0
  334. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/build_storage.py +0 -0
  335. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/build_study.py +0 -0
  336. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/copy_study.py +0 -0
  337. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +0 -0
  338. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/__init__.py +0 -0
  339. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_study/__init__.py +0 -0
  340. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_study/dump.py +0 -0
  341. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_study/load.py +0 -0
  342. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_trial/__init__.py +0 -0
  343. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_trial/dump.py +0 -0
  344. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_optuna/serialize/for_trial/load.py +0 -0
  345. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/__init__.py +0 -0
  346. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/copy.py +0 -0
  347. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/find_files_in_dir.py +0 -0
  348. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/organize/__init__.py +0 -0
  349. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/organize/group_files_by_timestamp.py +0 -0
  350. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/pack.py +0 -0
  351. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/path/__init__.py +0 -0
  352. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/path/find_illegal_chars.py +0 -0
  353. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/path/replace_illegal_chars.py +0 -0
  354. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/remove.py +0 -0
  355. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/unpack.py +0 -0
  356. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_os/walk.py +0 -0
  357. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_streamlit/__init__.py +0 -0
  358. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_streamlit/markdown/__init__.py +0 -0
  359. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_streamlit/markdown/show.py +0 -0
  360. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_streamlit/markdown/show_image.py +0 -0
  361. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_streamlit/markdown/show_table.py +0 -0
  362. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_test/__init__.py +0 -0
  363. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
  364. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/__init__.py +0 -0
  365. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
  366. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
  367. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
  368. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
  369. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
  370. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
  371. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
  372. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
  373. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
  374. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
  375. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
  376. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
  377. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
  378. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
  379. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/utils/__init__.py +0 -0
  380. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox/utils/variable.py +0 -0
  381. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox_dev.egg-info/SOURCES.txt +0 -0
  382. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
  383. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
  384. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
  385. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/pyproject.toml +0 -0
  386. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/setup.cfg +0 -0
  387. {kevin-toolbox-dev-1.4.8 → kevin-toolbox-dev-1.4.9}/setup.py +0 -0
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.1
2
+ Name: kevin-toolbox-dev
3
+ Version: 1.4.9
4
+ Summary: 一个常用的工具代码包集合
5
+ Home-page: https://github.com/cantbeblank96/kevin_toolbox
6
+ Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
7
+ Author: kevin hsu
8
+ Author-email: xukaiming1996@163.com
9
+ License: MIT
10
+ Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
11
+ Platform: UNKNOWN
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Requires-Python: >=3.6
16
+ Description-Content-Type: text/markdown
17
+ Provides-Extra: plot
18
+ Provides-Extra: rest
19
+
20
+ # kevin_toolbox
21
+
22
+ 一个通用的工具代码包集合
23
+
24
+
25
+
26
+ 环境要求
27
+
28
+ ```shell
29
+ numpy>=1.19
30
+ pytorch>=1.2
31
+ ```
32
+
33
+ 安装方法:
34
+
35
+ ```shell
36
+ pip install kevin-toolbox --no-dependencies
37
+ ```
38
+
39
+
40
+
41
+ [项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
42
+
43
+ [使用指南 User_Guide](./notes/User_Guide.md)
44
+
45
+ [免责声明 Disclaimer](./notes/Disclaimer.md)
46
+
47
+ [版本更新记录](./notes/Release_Record.md):
48
+
49
+ - v 1.4.9 (2025-03-27)【new feature】【bug fix】
50
+
51
+ - patches.for_numpy.linalg
52
+ - 【bug fix】fix bug in softmax(),修改 33 行,从减去全局最大值改为减去各个分组内部的最大值,避免全局最大值过大导致某些分组全体数值过小导致计算溢出。
53
+ - patches.for_matplotlib.common_charts.utils
54
+ - modify save_plot(),在最后增加 plt.close() 用于及时销毁已使用完的画布,避免不必要的内存占用。
55
+ - nested_dict_list
56
+ - 【new feature】modify traverse(),增加以下参数以更加精确地控制遍历时的行为:
57
+ - b_skip_repeated_non_leaf_node: 是否跳过重复的非叶节点。
58
+ - 何为重复?在内存中的id相同。
59
+ - 默认为 None,此时将根据 action_mode 的来决定:
60
+ - 对于会对节点进行修改的模式,比如 "remove" 和 "replace",将设为 True,以避免预期外的重复转换和替换。
61
+ - 对于不会修改节点内容的模式,比如 "skip",将设为 False。
62
+ - cond_for_repeated_leaf_to_skip:函数列表。在叶节点位置上,遇到满足其中某个条件的重复的元素时需要跳过。
63
+ - 同步修改内部使用了 traverse() 的 get_nodes() 和 copy_() 等函数。
64
+ - 新增了对应的测试用例。
65
+ - data_flow.file.json_
66
+ - 【bug fix】fix bug in write()。
67
+ - bug 归因:在 json_.write() 中通过使用 ndl.traverse() 来找出待转换的元素并进行转换,但是在 v1.4.8 前,该函数默认不会跳过重复(在内存中的id相同)出现的内容。由于该内容的不同引用实际上指向的是同一个,因此对这些引用的分别多次操作实际上就是对该内容进行了多次操作。
68
+ - bug 解决:在后续 v1.4.9 中为 ndl.traverse() 新增了 b_skip_repeated_non_leaf_node 用于控制是否需要跳过重复的引用。我们只需要在使用该函数时,令参数 b_skip_repeated_non_leaf_node=True即可。
69
+
70
+
@@ -0,0 +1,49 @@
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.9 (2025-03-27)【new feature】【bug fix】
31
+
32
+ - patches.for_numpy.linalg
33
+ - 【bug fix】fix bug in softmax(),修改 33 行,从减去全局最大值改为减去各个分组内部的最大值,避免全局最大值过大导致某些分组全体数值过小导致计算溢出。
34
+ - patches.for_matplotlib.common_charts.utils
35
+ - modify save_plot(),在最后增加 plt.close() 用于及时销毁已使用完的画布,避免不必要的内存占用。
36
+ - nested_dict_list
37
+ - 【new feature】modify traverse(),增加以下参数以更加精确地控制遍历时的行为:
38
+ - b_skip_repeated_non_leaf_node: 是否跳过重复的非叶节点。
39
+ - 何为重复?在内存中的id相同。
40
+ - 默认为 None,此时将根据 action_mode 的来决定:
41
+ - 对于会对节点进行修改的模式,比如 "remove" 和 "replace",将设为 True,以避免预期外的重复转换和替换。
42
+ - 对于不会修改节点内容的模式,比如 "skip",将设为 False。
43
+ - cond_for_repeated_leaf_to_skip:函数列表。在叶节点位置上,遇到满足其中某个条件的重复的元素时需要跳过。
44
+ - 同步修改内部使用了 traverse() 的 get_nodes() 和 copy_() 等函数。
45
+ - 新增了对应的测试用例。
46
+ - data_flow.file.json_
47
+ - 【bug fix】fix bug in write()。
48
+ - bug 归因:在 json_.write() 中通过使用 ndl.traverse() 来找出待转换的元素并进行转换,但是在 v1.4.8 前,该函数默认不会跳过重复(在内存中的id相同)出现的内容。由于该内容的不同引用实际上指向的是同一个,因此对这些引用的分别多次操作实际上就是对该内容进行了多次操作。
49
+ - bug 解决:在后续 v1.4.9 中为 ndl.traverse() 新增了 b_skip_repeated_non_leaf_node 用于控制是否需要跳过重复的引用。我们只需要在使用该函数时,令参数 b_skip_repeated_non_leaf_node=True即可。
@@ -1,4 +1,4 @@
1
- __version__ = "1.4.8"
1
+ __version__ = "1.4.9"
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 1756803931 --verbose 0'
15
+ f'--expiration_timestamp 1758638079 --verbose 0'
16
16
  )
@@ -56,7 +56,8 @@ def write_json(content, file_path, converters=None, b_use_suggested_converter=Fa
56
56
  content = traverse(var=[copy.deepcopy(content)],
57
57
  match_cond=lambda _, __, ___: True, action_mode="replace",
58
58
  converter=lambda _, x: converter(x),
59
- b_traverse_matched_element=True)[0]
59
+ b_traverse_matched_element=True,
60
+ b_skip_repeated_non_leaf_node=True)[0]
60
61
 
61
62
  content = json.dumps(content, **output_format)
62
63
 
@@ -16,7 +16,6 @@ def check_version_and_update(package_name, cur_version=None, available_versions=
16
16
  ex = subprocess.Popen(f'pip list | grep "{package_name} "', shell=True, stdout=subprocess.PIPE)
17
17
  out, _ = ex.communicate()
18
18
  out = out.decode().strip()
19
- # breakpoint()
20
19
  cur_version = out.split(package_name)[-1].strip()
21
20
 
22
21
  # try to read available versions
@@ -123,7 +123,8 @@ def _copy_structure(var, b_keep_internal_references):
123
123
 
124
124
  return traverse(var=[var], match_cond=lambda _, __, value: isinstance(value, (list, dict,)),
125
125
  action_mode="replace", converter=converter,
126
- traversal_mode="dfs_pre_order", b_traverse_matched_element=True)[0]
126
+ traversal_mode="dfs_pre_order", b_traverse_matched_element=True,
127
+ b_skip_repeated_non_leaf_node=True)[0]
127
128
 
128
129
 
129
130
  def _copy_nodes(var, b_keep_internal_references):
@@ -149,7 +150,8 @@ def _copy_nodes(var, b_keep_internal_references):
149
150
 
150
151
  return traverse(var=[var], match_cond=lambda _, __, value: not isinstance(value, (list, dict,)),
151
152
  action_mode="replace", converter=converter,
152
- traversal_mode="dfs_pre_order", b_traverse_matched_element=True)[0]
153
+ traversal_mode="dfs_pre_order", b_traverse_matched_element=True,
154
+ b_skip_repeated_non_leaf_node=True)[0]
153
155
 
154
156
 
155
157
  if __name__ == '__main__':
@@ -2,7 +2,7 @@ from kevin_toolbox.nested_dict_list import traverse, get_value
2
2
  from kevin_toolbox.nested_dict_list.name_handler import parse_name
3
3
 
4
4
 
5
- def get_nodes(var, level=-1, b_strict=True):
5
+ def get_nodes(var, level=-1, b_strict=True, **kwargs):
6
6
  """
7
7
  获取嵌套字典列表 var 中所有叶节点
8
8
  以列表 [(name,value), ...] 形式返回,其中名字 name 的解释方式参考 name_handler.parse_name() 介绍
@@ -23,6 +23,8 @@ def get_nodes(var, level=-1, b_strict=True):
23
23
  默认为 True,不添加。
24
24
  """
25
25
  assert isinstance(level, (int,))
26
+ kwargs.setdefault("b_skip_repeated_non_leaf_node", False)
27
+
26
28
  if level == 0:
27
29
  return [("", var)]
28
30
 
@@ -38,7 +40,7 @@ def get_nodes(var, level=-1, b_strict=True):
38
40
  res_empty.add(idx + "@None") # 添加哨兵,表示空节点,并不会被实际解释
39
41
  return False
40
42
 
41
- traverse(var=var, match_cond=func, action_mode="skip", b_use_name_as_idx=True)
43
+ traverse(var=var, match_cond=func, action_mode="skip", b_use_name_as_idx=True, **kwargs)
42
44
 
43
45
  if level != -1:
44
46
  names = set()
@@ -15,7 +15,8 @@ class Traversal_Mode(Enum):
15
15
 
16
16
 
17
17
  def traverse(var, match_cond, action_mode="remove", converter=None,
18
- b_use_name_as_idx=False, traversal_mode="dfs_pre_order", b_traverse_matched_element=False):
18
+ b_use_name_as_idx=False, traversal_mode="dfs_pre_order", b_traverse_matched_element=False,
19
+ b_skip_repeated_non_leaf_node=None, cond_for_repeated_leaf_to_skip=None, **kwargs):
19
20
  """
20
21
  遍历 var 找到符合 match_cond 的元素,将其按照 action_mode 指定的操作进行处理
21
22
 
@@ -48,46 +49,86 @@ def traverse(var, match_cond, action_mode="remove", converter=None,
48
49
  默认为 "dfs_pre_order"
49
50
  b_use_name_as_idx: <boolean> 对于 match_cond/converter 中的 idx 参数,是传入整体的 name 还是父节点的 index 或 key。
50
51
  默认为 False
51
- b_traverse_matched_element <boolean> 对于匹配上的元素,经过处理后,是否继续遍历该元素的内容
52
+ b_traverse_matched_element: <boolean> 对于匹配上的元素,经过处理后,是否继续遍历该元素的内容
52
53
  默认为 False
54
+ b_skip_repeated_non_leaf_node: <boolean> 是否跳过重复的非叶节点。
55
+ 何为重复?
56
+ 在内存中的id相同。
57
+ 默认为 None,此时将根据 action_mode 的来决定:
58
+ - 对于会对节点进行修改的模式,比如 "remove" 和 "replace",将设为 True,以避免预期外的重复转换和替换。
59
+ - 对于不会修改节点内容的模式,比如 "skip",将设为 False。
60
+ cond_for_repeated_leaf_to_skip: <list/tuple of callable> 在叶节点位置上,遇到满足其中某个条件的重复的元素时需要跳过。
61
+ 要求函数接受 叶节点的值,并返回一个 boolean,表示是否匹配成功。
62
+ 默认为 None
53
63
  """
54
64
  assert callable(match_cond)
55
65
  action_mode = Action_Mode(action_mode)
56
66
  if action_mode is Action_Mode.REPLACE:
57
67
  assert callable(converter)
58
68
  traversal_mode = Traversal_Mode(traversal_mode)
69
+ if b_skip_repeated_non_leaf_node is None:
70
+ if action_mode is Action_Mode.SKIP:
71
+ b_skip_repeated_non_leaf_node = False
72
+ else: # action_mode in (Action_Mode.REMOVE, Action_Mode.REPLACE)
73
+ b_skip_repeated_non_leaf_node = True
74
+ cond_for_repeated_leaf_to_skip = [] if cond_for_repeated_leaf_to_skip is None else cond_for_repeated_leaf_to_skip
75
+
76
+ passed_node_ids = {"leaf": set(), "non_leaf": set()}
59
77
 
60
78
  if traversal_mode is Traversal_Mode.BFS:
61
- return _bfs(var, match_cond, action_mode, converter, b_use_name_as_idx, b_traverse_matched_element)
79
+ return _bfs(var, match_cond, action_mode, converter, b_use_name_as_idx, b_traverse_matched_element,
80
+ b_skip_repeated_non_leaf_node=b_skip_repeated_non_leaf_node,
81
+ cond_for_repeated_leaf_to_skip=cond_for_repeated_leaf_to_skip,
82
+ passed_node_ids=passed_node_ids)
62
83
  else:
63
84
  return _dfs(var, match_cond, action_mode, converter, b_use_name_as_idx, traversal_mode,
64
- b_traverse_matched_element, "")
85
+ b_traverse_matched_element, pre_name="",
86
+ b_skip_repeated_non_leaf_node=b_skip_repeated_non_leaf_node,
87
+ cond_for_repeated_leaf_to_skip=cond_for_repeated_leaf_to_skip,
88
+ passed_node_ids=passed_node_ids)
65
89
 
66
90
 
67
- def _bfs(var, match_cond, action_mode, converter, b_use_name_as_idx, b_traverse_matched_element):
91
+ def _bfs(var, match_cond, action_mode, converter, b_use_name_as_idx, b_traverse_matched_element,
92
+ b_skip_repeated_non_leaf_node, cond_for_repeated_leaf_to_skip, passed_node_ids):
68
93
  temp = [("", var)]
69
94
 
70
95
  while len(temp):
71
- pre_name, i = temp.pop(0)
72
- if isinstance(i, (list, dict)):
73
- keys = list(range(len(i)) if isinstance(i, list) else i.keys())
96
+ pre_name, it = temp.pop(0)
97
+ if isinstance(it, (list, dict)):
98
+ #
99
+ if b_skip_repeated_non_leaf_node:
100
+ if id(it) in passed_node_ids["non_leaf"]:
101
+ continue
102
+ else:
103
+ passed_node_ids["non_leaf"].add(id(it))
104
+ #
105
+ keys = list(range(len(it)) if isinstance(it, list) else it.keys())
74
106
  keys.reverse() # 反过来便于 列表 弹出元素
75
- idx_ls = _gen_idx(i, keys, b_use_name_as_idx, pre_name)
107
+ idx_ls = _gen_idx(it, keys, b_use_name_as_idx, pre_name)
76
108
 
77
109
  # 匹配&处理
78
110
  for k, idx in zip(keys, idx_ls):
79
- b_matched, b_popped = _deal(i, k, idx, match_cond, converter, action_mode)
80
- if b_popped or (b_matched and not b_traverse_matched_element):
111
+ b_matched, b_popped, b_skip = _deal(it, k, idx, match_cond, converter, action_mode,
112
+ cond_for_repeated_leaf_to_skip, passed_node_ids)
113
+ if b_skip or b_popped or (b_matched and not b_traverse_matched_element):
81
114
  continue
82
115
  # 添加到队尾
83
- temp.append((idx, i[k]))
116
+ temp.append((idx, it[k]))
84
117
 
85
118
  return var
86
119
 
87
120
 
88
121
  def _dfs(var, match_cond, action_mode, converter,
89
- b_use_name_as_idx, traversal_mode, b_traverse_matched_element, pre_name):
122
+ b_use_name_as_idx, traversal_mode, b_traverse_matched_element, pre_name,
123
+ b_skip_repeated_non_leaf_node, cond_for_repeated_leaf_to_skip, passed_node_ids):
90
124
  if isinstance(var, (list, dict)):
125
+ #
126
+ if b_skip_repeated_non_leaf_node:
127
+ if id(var) in passed_node_ids["non_leaf"]:
128
+ return var
129
+ else:
130
+ passed_node_ids["non_leaf"].add(id(var))
131
+ #
91
132
  keys = list(range(len(var)) if isinstance(var, list) else var.keys())
92
133
  keys.reverse() # 反过来便于 列表 弹出元素
93
134
  idx_ls = _gen_idx(var, keys, b_use_name_as_idx, pre_name)
@@ -98,29 +139,42 @@ def _dfs(var, match_cond, action_mode, converter,
98
139
  # 匹配&处理
99
140
  deal_res_ls = []
100
141
  for k, idx in zip(keys, idx_ls):
101
- deal_res_ls.append(_deal(var, k, idx, match_cond, converter, action_mode))
142
+ deal_res_ls.append(_deal(var, k, idx, match_cond, converter, action_mode,
143
+ cond_for_repeated_leaf_to_skip, passed_node_ids))
102
144
  # 递归遍历
103
- for (b_matched, b_popped), k, idx in zip(deal_res_ls, keys, idx_ls):
104
- if b_popped or (b_matched and not b_traverse_matched_element):
145
+ for (b_matched, b_popped, b_skip), k, idx in zip(deal_res_ls, keys, idx_ls):
146
+ if b_skip or b_popped or (b_matched and not b_traverse_matched_element):
105
147
  continue
106
148
  var[k] = _dfs(var[k], match_cond, action_mode, converter, b_use_name_as_idx, traversal_mode,
107
- b_traverse_matched_element, idx)
149
+ b_traverse_matched_element, idx,
150
+ b_skip_repeated_non_leaf_node, cond_for_repeated_leaf_to_skip, passed_node_ids)
108
151
  else:
109
152
  # 后序
110
153
  # 递归遍历
111
154
  for k, idx in zip(keys, idx_ls):
112
155
  var[k] = _dfs(var[k], match_cond, action_mode, converter, b_use_name_as_idx, traversal_mode,
113
- b_traverse_matched_element, idx)
156
+ b_traverse_matched_element, idx,
157
+ b_skip_repeated_non_leaf_node, cond_for_repeated_leaf_to_skip, passed_node_ids)
114
158
  # 匹配&处理
115
159
  for k, idx in zip(keys, idx_ls):
116
- _deal(var, k, idx, match_cond, converter, action_mode)
160
+ _deal(var, k, idx, match_cond, converter, action_mode,
161
+ cond_for_repeated_leaf_to_skip, passed_node_ids)
117
162
  else:
118
163
  pass
119
164
  return var
120
165
 
121
166
 
122
- def _deal(var, k, idx, match_cond, converter, action_mode):
167
+ def _deal(var, k, idx, match_cond, converter, action_mode,
168
+ cond_for_repeated_leaf_to_skip, passed_node_ids):
123
169
  """处理节点"""
170
+ b_skip = False
171
+
172
+ if cond_for_repeated_leaf_to_skip and not isinstance(var[k], (dict, list,)) and any(
173
+ [i(var[k]) for i in cond_for_repeated_leaf_to_skip]):
174
+ if id(var[k]) in passed_node_ids["leaf"]:
175
+ return None, None, True
176
+ else:
177
+ passed_node_ids["leaf"].add(id(var[k]))
124
178
  # 匹配
125
179
  b_matched = match_cond(type(var), idx, var[k])
126
180
  b_popped = False
@@ -133,7 +187,7 @@ def _deal(var, k, idx, match_cond, converter, action_mode):
133
187
  var[k] = converter(idx, var[k])
134
188
  else:
135
189
  pass
136
- return b_matched, b_popped
190
+ return b_matched, b_popped, b_skip
137
191
 
138
192
 
139
193
  def _gen_idx(var, keys, b_use_name_as_idx, pre_name):
@@ -70,10 +70,7 @@ def _forward(var, flag, match_cond):
70
70
  # 任选其一进行保留,其余改为引用
71
71
  keep_name = unprocessed_name_set.pop()
72
72
  for name in unprocessed_name_set:
73
- try:
74
- var = set_value(var=var, name=name, value=f'<{flag}>{{{keep_name}}}', b_force=False)
75
- except:
76
- breakpoint()
73
+ var = set_value(var=var, name=name, value=f'<{flag}>{{{keep_name}}}', b_force=False)
77
74
  processed_name_set.update(unprocessed_name_set)
78
75
 
79
76
  # 将叶节点中,未被处理过,且是 str,且以 flag 开头的字符串,添加多一个 flag,以示区分
@@ -6,8 +6,6 @@ def hex_to_rgba(hex_color):
6
6
  assert len(hex_color) in (6, 8), \
7
7
  f'hex_color should be 6 or 8 characters long (not including #). but got {len(hex_color)}'
8
8
  res = list(int(hex_color[i * 2:i * 2 + 2], 16) for i in range(len(hex_color) // 2))
9
- if len(res) not in (3, 4):
10
- breakpoint()
11
9
  if len(res) == 4:
12
10
  res[3] /= 255
13
11
  return tuple(res)
@@ -9,3 +9,4 @@ def save_plot(plt, output_path, dpi=200, suffix=".png", **kwargs):
9
9
  else:
10
10
  os.makedirs(os.path.dirname(output_path), exist_ok=True)
11
11
  plt.savefig(output_path, dpi=dpi)
12
+ plt.close()
@@ -30,7 +30,7 @@ def softmax(x, axis=-1, temperature=None, b_use_log_over_x=False):
30
30
  else:
31
31
  # softmax(x)
32
32
  # 为了数值稳定,减去最大值
33
- x = x - np.max(x)
33
+ x = x - np.max(x, axis=axis, keepdims=True)
34
34
  #
35
35
  if temperature is not None:
36
36
  assert temperature > 0
@@ -46,3 +46,6 @@ if __name__ == '__main__':
46
46
  print(softmax(np.asarray([[[0], [0.1]]]), temperature=0.00001, axis=1))
47
47
  print(softmax(np.asarray([[[0], [0.1]]]), temperature=0, axis=1))
48
48
  print(softmax([0, 1, 2], temperature=0.1))
49
+ print(softmax([[5.0000e-01, 5.0000e-01],
50
+ [7.0000e-01, 3.0000e-01],
51
+ [0.0000e+00, 1.0000e+03]], axis=-1, temperature=None))
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.1
2
+ Name: kevin-toolbox-dev
3
+ Version: 1.4.9
4
+ Summary: 一个常用的工具代码包集合
5
+ Home-page: https://github.com/cantbeblank96/kevin_toolbox
6
+ Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
7
+ Author: kevin hsu
8
+ Author-email: xukaiming1996@163.com
9
+ License: MIT
10
+ Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
11
+ Platform: UNKNOWN
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Requires-Python: >=3.6
16
+ Description-Content-Type: text/markdown
17
+ Provides-Extra: plot
18
+ Provides-Extra: rest
19
+
20
+ # kevin_toolbox
21
+
22
+ 一个通用的工具代码包集合
23
+
24
+
25
+
26
+ 环境要求
27
+
28
+ ```shell
29
+ numpy>=1.19
30
+ pytorch>=1.2
31
+ ```
32
+
33
+ 安装方法:
34
+
35
+ ```shell
36
+ pip install kevin-toolbox --no-dependencies
37
+ ```
38
+
39
+
40
+
41
+ [项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
42
+
43
+ [使用指南 User_Guide](./notes/User_Guide.md)
44
+
45
+ [免责声明 Disclaimer](./notes/Disclaimer.md)
46
+
47
+ [版本更新记录](./notes/Release_Record.md):
48
+
49
+ - v 1.4.9 (2025-03-27)【new feature】【bug fix】
50
+
51
+ - patches.for_numpy.linalg
52
+ - 【bug fix】fix bug in softmax(),修改 33 行,从减去全局最大值改为减去各个分组内部的最大值,避免全局最大值过大导致某些分组全体数值过小导致计算溢出。
53
+ - patches.for_matplotlib.common_charts.utils
54
+ - modify save_plot(),在最后增加 plt.close() 用于及时销毁已使用完的画布,避免不必要的内存占用。
55
+ - nested_dict_list
56
+ - 【new feature】modify traverse(),增加以下参数以更加精确地控制遍历时的行为:
57
+ - b_skip_repeated_non_leaf_node: 是否跳过重复的非叶节点。
58
+ - 何为重复?在内存中的id相同。
59
+ - 默认为 None,此时将根据 action_mode 的来决定:
60
+ - 对于会对节点进行修改的模式,比如 "remove" 和 "replace",将设为 True,以避免预期外的重复转换和替换。
61
+ - 对于不会修改节点内容的模式,比如 "skip",将设为 False。
62
+ - cond_for_repeated_leaf_to_skip:函数列表。在叶节点位置上,遇到满足其中某个条件的重复的元素时需要跳过。
63
+ - 同步修改内部使用了 traverse() 的 get_nodes() 和 copy_() 等函数。
64
+ - 新增了对应的测试用例。
65
+ - data_flow.file.json_
66
+ - 【bug fix】fix bug in write()。
67
+ - bug 归因:在 json_.write() 中通过使用 ndl.traverse() 来找出待转换的元素并进行转换,但是在 v1.4.8 前,该函数默认不会跳过重复(在内存中的id相同)出现的内容。由于该内容的不同引用实际上指向的是同一个,因此对这些引用的分别多次操作实际上就是对该内容进行了多次操作。
68
+ - bug 解决:在后续 v1.4.9 中为 ndl.traverse() 新增了 b_skip_repeated_non_leaf_node 用于控制是否需要跳过重复的引用。我们只需要在使用该函数时,令参数 b_skip_repeated_non_leaf_node=True即可。
69
+
70
+
@@ -1,81 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: kevin-toolbox-dev
3
- Version: 1.4.8
4
- Summary: 一个常用的工具代码包集合
5
- Home-page: https://github.com/cantbeblank96/kevin_toolbox
6
- Download-URL: https://github.com/username/your-package/archive/refs/tags/v1.0.0.tar.gz
7
- Author: kevin hsu
8
- Author-email: xukaiming1996@163.com
9
- License: MIT
10
- Keywords: mathematics,pytorch,numpy,machine-learning,algorithm
11
- Platform: UNKNOWN
12
- Classifier: License :: OSI Approved :: MIT License
13
- Classifier: Programming Language :: Python
14
- Classifier: Programming Language :: Python :: 3
15
- Requires-Python: >=3.6
16
- Description-Content-Type: text/markdown
17
- Provides-Extra: plot
18
- Provides-Extra: rest
19
-
20
- # kevin_toolbox
21
-
22
- 一个通用的工具代码包集合
23
-
24
-
25
-
26
- 环境要求
27
-
28
- ```shell
29
- numpy>=1.19
30
- pytorch>=1.2
31
- ```
32
-
33
- 安装方法:
34
-
35
- ```shell
36
- pip install kevin-toolbox --no-dependencies
37
- ```
38
-
39
-
40
-
41
- [项目地址 Repo](https://github.com/cantbeblank96/kevin_toolbox)
42
-
43
- [使用指南 User_Guide](./notes/User_Guide.md)
44
-
45
- [免责声明 Disclaimer](./notes/Disclaimer.md)
46
-
47
- [版本更新记录](./notes/Release_Record.md):
48
-
49
- - v 1.4.8 (2025-03-06)【new feature】【refactor】
50
-
51
- - 【new feature】network,新增网络模块。
52
- - 该模块包含网络访问相关的函数:
53
- - get_response(),获取 url 的响应。
54
- - fetch_metadata(),从 URL/response 中获取文件名、后缀(扩展名)、大小等元信息。
55
- - fetch_content(),从 URL/response 中获取内容。
56
- - download_file(),下载文件。
57
- - env_info
58
- - modify Env_Vars_Parser.parse(),新增 default 参数用于支持解释失败时候返回默认值。
59
- - computer_science.algorithm
60
- - 【refactor】【new feature】decorator,从 developing 中将装饰器相关模块整合到 cs.algorithm 中。
61
- - 该目录目前包含以下函数:
62
- - retry(),在函数执行失败时,等待一定时间后重试多次。
63
- - restore_original_work_path(),在运行函数 func 前备份当前工作目录,并在函数运行结束后还原到原始工作目录。
64
- - registration
65
- - 【new feature】add Serializer_for_Registry_Execution,用于对基于 Registry 中成员构建的执行过程进行序列化和反序列化操作。
66
- - nested_dict_list.serializer
67
- - modify write(),增加返回值,返回保存到的路径。
68
- - patches.for_matplotlib
69
- - 【new feature】add COMMON_CHARTS,增加该注册器用于管理 common_charts 模块中的方法。
70
- - common_charts
71
- - 为所有plot_xx函数增加了注释和测试用例。
72
- - 为所有plot_xx函数增加以下参数:
73
- - b_generate_record:是否保存函数参数为档案。
74
- - 默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
75
- - 后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
76
- - 该参数仅在 output_dir 和 output_path 非 None 时起效。
77
- - output_path:图片输出路径。
78
- - 支持直接指定图片要保存的路径,在原有的通过 output_dir 和 title 自动生成路径的方式之外,提供了另一个指定的方式。
79
- - 【new feature】add plot_from_record,从保存的档案 .record.tar 文件中恢复并绘制图像。
80
-
81
-
@@ -1,60 +0,0 @@
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.8 (2025-03-06)【new feature】【refactor】
31
-
32
- - 【new feature】network,新增网络模块。
33
- - 该模块包含网络访问相关的函数:
34
- - get_response(),获取 url 的响应。
35
- - fetch_metadata(),从 URL/response 中获取文件名、后缀(扩展名)、大小等元信息。
36
- - fetch_content(),从 URL/response 中获取内容。
37
- - download_file(),下载文件。
38
- - env_info
39
- - modify Env_Vars_Parser.parse(),新增 default 参数用于支持解释失败时候返回默认值。
40
- - computer_science.algorithm
41
- - 【refactor】【new feature】decorator,从 developing 中将装饰器相关模块整合到 cs.algorithm 中。
42
- - 该目录目前包含以下函数:
43
- - retry(),在函数执行失败时,等待一定时间后重试多次。
44
- - restore_original_work_path(),在运行函数 func 前备份当前工作目录,并在函数运行结束后还原到原始工作目录。
45
- - registration
46
- - 【new feature】add Serializer_for_Registry_Execution,用于对基于 Registry 中成员构建的执行过程进行序列化和反序列化操作。
47
- - nested_dict_list.serializer
48
- - modify write(),增加返回值,返回保存到的路径。
49
- - patches.for_matplotlib
50
- - 【new feature】add COMMON_CHARTS,增加该注册器用于管理 common_charts 模块中的方法。
51
- - common_charts
52
- - 为所有plot_xx函数增加了注释和测试用例。
53
- - 为所有plot_xx函数增加以下参数:
54
- - b_generate_record:是否保存函数参数为档案。
55
- - 默认为 False,当设置为 True 时将会把函数参数保存成 [output_path].record.tar。
56
- - 后续可以使用 plot_from_record() 函数或者 Serializer_for_Registry_Execution 读取该档案,并进行修改和重新绘制。
57
- - 该参数仅在 output_dir 和 output_path 非 None 时起效。
58
- - output_path:图片输出路径。
59
- - 支持直接指定图片要保存的路径,在原有的通过 output_dir 和 title 自动生成路径的方式之外,提供了另一个指定的方式。
60
- - 【new feature】add plot_from_record,从保存的档案 .record.tar 文件中恢复并绘制图像。