kevin-toolbox-dev 1.4.9__tar.gz → 1.4.10__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 (394) hide show
  1. kevin-toolbox-dev-1.4.10/PKG-INFO +101 -0
  2. kevin-toolbox-dev-1.4.10/README.md +80 -0
  3. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/__init__.py +2 -2
  4. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +2 -0
  5. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/cache_base.py +10 -0
  6. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/memo_cache.py +17 -0
  7. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager.py +24 -74
  8. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager_wto_strategy.py +157 -0
  9. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +1 -0
  10. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/for_seq/sample_subset_most_evenly.py +50 -0
  11. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/redirector/__init__.py +1 -0
  12. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/redirector/redirectable_sequence_fetcher.py +258 -0
  13. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/sampler/__init__.py +1 -0
  14. kevin-toolbox-dev-1.4.10/kevin_toolbox/computer_science/algorithm/sampler/reservoir_sampler.py +116 -0
  15. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +1 -1
  16. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +18 -7
  17. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +8 -1
  18. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +2 -1
  19. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +1 -4
  20. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation_debug.py +16 -4
  21. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/get_format.py +3 -0
  22. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_logging/build_logger.py +3 -1
  23. kevin-toolbox-dev-1.4.10/kevin_toolbox_dev.egg-info/PKG-INFO +101 -0
  24. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox_dev.egg-info/SOURCES.txt +6 -0
  25. kevin-toolbox-dev-1.4.9/PKG-INFO +0 -70
  26. kevin-toolbox-dev-1.4.9/README.md +0 -49
  27. kevin-toolbox-dev-1.4.9/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +0 -1
  28. kevin-toolbox-dev-1.4.9/kevin_toolbox_dev.egg-info/PKG-INFO +0 -70
  29. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/__init__.py +0 -0
  30. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
  31. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/__init__.py +0 -0
  32. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/__init__.py +0 -0
  33. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/fifo_strategy.py +0 -0
  34. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lfu_strategy.py +0 -0
  35. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lru_strategy.py +0 -0
  36. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lst_strategy.py +0 -0
  37. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/strategy_base.py +0 -0
  38. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/test/__init__.py +0 -0
  39. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_builder.py +0 -0
  40. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_manager.py +0 -0
  41. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_strategy.py +0 -0
  42. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/cache_manager/variable.py +0 -0
  43. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
  44. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
  45. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
  46. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
  47. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
  48. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
  49. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/decorator/__init__.py +0 -0
  50. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/decorator/restore_original_work_path.py +0 -0
  51. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/decorator/retry.py +0 -0
  52. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
  53. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
  54. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
  55. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
  56. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
  57. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
  58. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
  59. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
  60. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
  61. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
  62. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
  63. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
  64. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
  65. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_process_execute.py +0 -0
  66. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
  67. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/__init__.py +0 -0
  68. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_1.py +0 -0
  69. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/utils/wrapper_with_timeout_2.py +0 -0
  70. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
  71. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
  72. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/pareto_front/optimum_picker.py +0 -0
  73. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
  74. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/registration/registry.py +0 -0
  75. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/registration/serializer_for_registry_execution.py +0 -0
  76. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
  77. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
  78. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
  79. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
  80. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
  81. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +0 -0
  82. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_for_ndl.py +0 -0
  83. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +0 -0
  84. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +0 -0
  85. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +0 -0
  86. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +0 -0
  87. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +0 -0
  88. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
  89. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
  90. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
  91. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/dangerous/__init__.py +0 -0
  92. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
  93. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/__init__.py +0 -0
  94. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/__init__.py +0 -0
  95. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
  96. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
  97. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/cache/test/__init__.py +0 -0
  98. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/cache/test/test_cache_manager_for_iterator.py +0 -0
  99. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
  100. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +0 -0
  101. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/reader/unified_reader.py +0 -0
  102. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
  103. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/__init__.py +0 -0
  104. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/excel/__init__.py +0 -0
  105. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/excel/write_excel_with_matrix.py +0 -0
  106. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
  107. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +0 -0
  108. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
  109. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
  110. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
  111. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py +0 -0
  112. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
  113. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
  114. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py +0 -0
  115. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/read_json.py +0 -0
  116. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/json_/write_json.py +0 -0
  117. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
  118. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
  119. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/read.py +0 -0
  120. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
  121. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
  122. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
  123. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
  124. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
  125. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
  126. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
  127. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/link/__init__.py +0 -0
  128. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/link/find_links.py +0 -0
  129. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/link/generate_link.py +0 -0
  130. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/__init__.py +0 -0
  131. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/convert/__init__.py +0 -0
  132. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/convert/complete_to_matrix.py +0 -0
  133. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/convert/matrix_to_complete.py +0 -0
  134. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/convert_format.py +0 -0
  135. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/find_tables.py +0 -0
  136. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/generate_table.py +0 -0
  137. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/padding_misaligned_values.py +0 -0
  138. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/table/variable.py +0 -0
  139. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/utils/__init__.py +0 -0
  140. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/data_flow/file/markdown/utils/save_images_in_ndl.py +0 -0
  141. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/__init__.py +0 -0
  142. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
  143. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
  144. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
  145. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
  146. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
  147. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
  148. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
  149. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
  150. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
  151. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
  152. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
  153. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
  154. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
  155. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
  156. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/temperate/__init__.py +0 -0
  157. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
  158. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
  159. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
  160. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
  161. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/developing/test.py +0 -0
  162. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/__init__.py +0 -0
  163. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
  164. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/check_version_and_update.py +0 -0
  165. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/test/__init__.py +0 -0
  166. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/test/test_check_.py +0 -0
  167. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/test/test_variable_.py +0 -0
  168. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/test/test_version.py +0 -0
  169. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/variable_/__init__.py +0 -0
  170. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/variable_/env_vars_parser.py +0 -0
  171. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/version/__init__.py +0 -0
  172. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/version/compare_version.py +0 -0
  173. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/version/parse_version.py +0 -0
  174. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
  175. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/__init__.py +0 -0
  176. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
  177. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
  178. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
  179. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
  180. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
  181. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
  182. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
  183. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
  184. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
  185. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
  186. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
  187. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
  188. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/__init__.py +0 -0
  189. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
  190. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
  191. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
  192. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
  193. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
  194. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
  195. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
  196. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
  197. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
  198. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
  199. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
  200. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
  201. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
  202. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
  203. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
  204. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
  205. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
  206. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
  207. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
  208. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
  209. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
  210. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
  211. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
  212. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
  213. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
  214. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
  215. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
  216. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
  217. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/__init__.py +0 -0
  218. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/__init__.py +0 -0
  219. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
  220. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
  221. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
  222. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
  223. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
  224. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
  225. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
  226. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
  227. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
  228. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
  229. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
  230. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
  231. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
  232. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
  233. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
  234. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
  235. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
  236. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
  237. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
  238. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
  239. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/__init__.py +0 -0
  240. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/cache.py +0 -0
  241. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
  242. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
  243. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
  244. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
  245. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
  246. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
  247. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
  248. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/__init__.py +0 -0
  249. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
  250. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
  251. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
  252. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
  253. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
  254. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/__init__.py +0 -0
  255. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
  256. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
  257. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
  258. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
  259. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/math/utils/split_integer_most_evenly.py +0 -0
  260. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
  261. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/copy_.py +0 -0
  262. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
  263. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
  264. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/get_nodes.py +0 -0
  265. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
  266. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
  267. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
  268. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
  269. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
  270. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/__init__.py +0 -0
  271. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
  272. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
  273. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
  274. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
  275. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
  276. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
  277. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
  278. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
  279. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
  280. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
  281. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
  282. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -0
  283. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/read.py +0 -0
  284. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/saved_node_name_builder.py +0 -0
  285. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/variable.py +0 -0
  286. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/serializer/write.py +0 -0
  287. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/set_default.py +0 -0
  288. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/set_value.py +0 -0
  289. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/traverse.py +0 -0
  290. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
  291. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
  292. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
  293. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
  294. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
  295. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py +0 -0
  296. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/__init__.py +0 -0
  297. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/download_file.py +0 -0
  298. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/fetch_content.py +0 -0
  299. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/fetch_metadata.py +0 -0
  300. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/get_response.py +0 -0
  301. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/network/variable.py +0 -0
  302. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/__init__.py +0 -0
  303. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_logging/__init__.py +0 -0
  304. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/__init__.py +0 -0
  305. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
  306. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
  307. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
  308. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/clear_border_of_axes.py +0 -0
  309. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/color/__init__.py +0 -0
  310. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/color/color_format.py +0 -0
  311. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/color/convert_format.py +0 -0
  312. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/color/generate_color_list.py +0 -0
  313. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/color/get_format.py +0 -0
  314. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/__init__.py +0 -0
  315. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_bars.py +0 -0
  316. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_confusion_matrix.py +0 -0
  317. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_distribution.py +0 -0
  318. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_from_record.py +0 -0
  319. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_lines.py +0 -0
  320. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters.py +0 -0
  321. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters_matrix.py +0 -0
  322. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/__init__.py +0 -0
  323. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/get_output_path.py +0 -0
  324. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_plot.py +0 -0
  325. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/common_charts/utils/save_record.py +0 -0
  326. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_matplotlib/variable.py +0 -0
  327. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/__init__.py +0 -0
  328. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
  329. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
  330. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/linalg/entropy.py +0 -0
  331. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
  332. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/linalg/softmax.py +0 -0
  333. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/__init__.py +0 -0
  334. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/get_rng.py +0 -0
  335. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/get_rng_state.py +0 -0
  336. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/set_rng_state.py +0 -0
  337. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/truncated_multivariate_normal.py +0 -0
  338. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/truncated_normal.py +0 -0
  339. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_numpy/random/variable.py +0 -0
  340. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
  341. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/build_sampler.py +0 -0
  342. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/build_storage.py +0 -0
  343. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/build_study.py +0 -0
  344. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/copy_study.py +0 -0
  345. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +0 -0
  346. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/__init__.py +0 -0
  347. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_study/__init__.py +0 -0
  348. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_study/dump.py +0 -0
  349. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_study/load.py +0 -0
  350. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_trial/__init__.py +0 -0
  351. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_trial/dump.py +0 -0
  352. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_optuna/serialize/for_trial/load.py +0 -0
  353. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/__init__.py +0 -0
  354. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/copy.py +0 -0
  355. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/find_files_in_dir.py +0 -0
  356. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/organize/__init__.py +0 -0
  357. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/organize/group_files_by_timestamp.py +0 -0
  358. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/pack.py +0 -0
  359. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/path/__init__.py +0 -0
  360. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/path/find_illegal_chars.py +0 -0
  361. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/path/replace_illegal_chars.py +0 -0
  362. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/remove.py +0 -0
  363. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/unpack.py +0 -0
  364. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_os/walk.py +0 -0
  365. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_streamlit/__init__.py +0 -0
  366. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_streamlit/markdown/__init__.py +0 -0
  367. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_streamlit/markdown/show.py +0 -0
  368. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_streamlit/markdown/show_image.py +0 -0
  369. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_streamlit/markdown/show_table.py +0 -0
  370. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_test/__init__.py +0 -0
  371. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
  372. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/__init__.py +0 -0
  373. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
  374. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
  375. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
  376. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
  377. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
  378. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
  379. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
  380. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
  381. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
  382. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
  383. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
  384. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
  385. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
  386. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
  387. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/utils/__init__.py +0 -0
  388. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox/utils/variable.py +0 -0
  389. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
  390. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
  391. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
  392. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/pyproject.toml +0 -0
  393. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/setup.cfg +0 -0
  394. {kevin-toolbox-dev-1.4.9 → kevin-toolbox-dev-1.4.10}/setup.py +0 -0
@@ -0,0 +1,101 @@
1
+ Metadata-Version: 2.1
2
+ Name: kevin-toolbox-dev
3
+ Version: 1.4.10
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.10 (2025-04-11)【new feature】【bug fix】
50
+
51
+ - patches.for_logging
52
+ - modify build_logger() to allow parameter level to accept str input,允许参数 level 接受str输入,比如“DEBUG”或者“INFO”。
53
+
54
+ - computer_science.algorithm
55
+ - cache_manager
56
+ - 【new feature】add load_state_dict(), state_dict() to Cache_Base, Memo_Cache, Cache_Manager ,增加加载和保存状态的相关接口。
57
+ - add Cache_Manager_wto_Strategy,新增一个不绑定任何策略的缓存管理器,可以视为容量无上限的特殊情况
58
+ - refactor Cache_Manager,基于 Cache_Manager_wto_Strategy 对 Cache_Manager 代码进行简化和重构。
59
+ - 【new feature】redirector
60
+ - 该新增模块包含重定向功能的函数和类。所谓重定向,其本质是:**原目标失效或不合适时,自动转向一个新的目标,以保证流程不中断或获得正确结果**。
61
+ - add Redirectable_Sequence_Fetcher,用于从给定 seq 中获取元素,可以通过自动跳转来处理获取失败的情况。
62
+ - 功能描述:
63
+ 1. 对于给定的索引 idx,若能通过 seq(idx) 成功获取,则直接返回获取的结果。
64
+ 2. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
65
+ 1. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
66
+ 2. 当失败次数达到上限后,则不再进行尝试并直接返回重新向后的新的 idx 的结果。
67
+ 3. 若在此过程中原来失败的 idx 又能再次获取成功,则将失败次数减1,直至归零并删除该记录。
68
+ 3. 若递归次数达到上限,则进行报错或者返回给定的默认值。
69
+ 1. 若开启了跳转记忆功能,在重试过程中,一旦某次调用成功,记录原始索引与最终有效索引之间的映射关系。
70
+ - 添加了对应的测试用例。
71
+ - for_seq
72
+ - 【new feature】add sample_subset_most_evenly(),对列表按给定比例or数量进行采样,并返回一个新的列表,同时保证列表中每个元素在新列表中的占比尽量相近。
73
+ - redirector
74
+ - 【new feature】modify Redirectable_Sequence_Fetcher,增加了 seed 参数并在 state_dict 中增加 rng_state 项,以便控制(保存和重现)随机行为。
75
+ - 【new feature】sampler
76
+ - 该新增模块包含采样相关的函数和类。
77
+ - add Reservoir_Sampler,水库采样器。
78
+
79
+ - data_flow.file.kevin_notation
80
+
81
+ - 【bug fix】fix bug in Kevin_Notation_Reader and Kevin_Notation_Writer
82
+
83
+ - bug 原因:由于之前的版本默认启用"//"作为注释符号,因此导致无法正确读取带有"//"的值
84
+
85
+ - 解决:在 Kevin_Notation_Reader 和 Kevin_Notation_Writer 取消默认使用注释,并限定只有在 metadata 中显式指定注释标志符才会启用
86
+
87
+ - 注意:该修改可能导致原本带有注释的旧版本 .kvt 文件无法被正确读取,遇到该情况时,可以尝试将`# --metadata--`部分修改为:
88
+
89
+ ```text
90
+ # --metadata--
91
+ # sep
92
+
93
+ # comment_flag
94
+ //
95
+ ...
96
+ ```
97
+
98
+ - 添加了对应的测试用例。
99
+
100
+
101
+
@@ -0,0 +1,80 @@
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.10 (2025-04-11)【new feature】【bug fix】
31
+
32
+ - patches.for_logging
33
+ - modify build_logger() to allow parameter level to accept str input,允许参数 level 接受str输入,比如“DEBUG”或者“INFO”。
34
+
35
+ - computer_science.algorithm
36
+ - cache_manager
37
+ - 【new feature】add load_state_dict(), state_dict() to Cache_Base, Memo_Cache, Cache_Manager ,增加加载和保存状态的相关接口。
38
+ - add Cache_Manager_wto_Strategy,新增一个不绑定任何策略的缓存管理器,可以视为容量无上限的特殊情况
39
+ - refactor Cache_Manager,基于 Cache_Manager_wto_Strategy 对 Cache_Manager 代码进行简化和重构。
40
+ - 【new feature】redirector
41
+ - 该新增模块包含重定向功能的函数和类。所谓重定向,其本质是:**原目标失效或不合适时,自动转向一个新的目标,以保证流程不中断或获得正确结果**。
42
+ - add Redirectable_Sequence_Fetcher,用于从给定 seq 中获取元素,可以通过自动跳转来处理获取失败的情况。
43
+ - 功能描述:
44
+ 1. 对于给定的索引 idx,若能通过 seq(idx) 成功获取,则直接返回获取的结果。
45
+ 2. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
46
+ 1. 若不能成功获取,则会根据给定的规则修改索引(如idx-1)重新尝试获取,递归调用直至获取成功或者递归调用次数达到上限。
47
+ 2. 当失败次数达到上限后,则不再进行尝试并直接返回重新向后的新的 idx 的结果。
48
+ 3. 若在此过程中原来失败的 idx 又能再次获取成功,则将失败次数减1,直至归零并删除该记录。
49
+ 3. 若递归次数达到上限,则进行报错或者返回给定的默认值。
50
+ 1. 若开启了跳转记忆功能,在重试过程中,一旦某次调用成功,记录原始索引与最终有效索引之间的映射关系。
51
+ - 添加了对应的测试用例。
52
+ - for_seq
53
+ - 【new feature】add sample_subset_most_evenly(),对列表按给定比例or数量进行采样,并返回一个新的列表,同时保证列表中每个元素在新列表中的占比尽量相近。
54
+ - redirector
55
+ - 【new feature】modify Redirectable_Sequence_Fetcher,增加了 seed 参数并在 state_dict 中增加 rng_state 项,以便控制(保存和重现)随机行为。
56
+ - 【new feature】sampler
57
+ - 该新增模块包含采样相关的函数和类。
58
+ - add Reservoir_Sampler,水库采样器。
59
+
60
+ - data_flow.file.kevin_notation
61
+
62
+ - 【bug fix】fix bug in Kevin_Notation_Reader and Kevin_Notation_Writer
63
+
64
+ - bug 原因:由于之前的版本默认启用"//"作为注释符号,因此导致无法正确读取带有"//"的值
65
+
66
+ - 解决:在 Kevin_Notation_Reader 和 Kevin_Notation_Writer 取消默认使用注释,并限定只有在 metadata 中显式指定注释标志符才会启用
67
+
68
+ - 注意:该修改可能导致原本带有注释的旧版本 .kvt 文件无法被正确读取,遇到该情况时,可以尝试将`# --metadata--`部分修改为:
69
+
70
+ ```text
71
+ # --metadata--
72
+ # sep
73
+
74
+ # comment_flag
75
+ //
76
+ ...
77
+ ```
78
+
79
+ - 添加了对应的测试用例。
80
+
@@ -1,4 +1,4 @@
1
- __version__ = "1.4.9"
1
+ __version__ = "1.4.10"
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 1758638079 --verbose 0'
15
+ f'--expiration_timestamp 1759927714 --verbose 0'
16
16
  )
@@ -0,0 +1,2 @@
1
+ from .cache_manager_wto_strategy import Cache_Manager_wto_Strategy
2
+ from .cache_manager import Cache_Manager
@@ -12,6 +12,7 @@ class Cache_Base(ABC):
12
12
  - 判断是否命中 has()
13
13
  - 获取缓存已占空间 len()
14
14
  - 清空所有内容 clear()
15
+ - 加载和保存状态 load_state_dict(), state_dict()
15
16
  等方法。
16
17
 
17
18
  对外提供:
@@ -21,6 +22,7 @@ class Cache_Base(ABC):
21
22
  - 判断是否命中 has()
22
23
  - 获取缓存已占空间 len()
23
24
  - 清空所有内容 clear()
25
+ - 加载和保存状态 load_state_dict(), state_dict()
24
26
  等接口。
25
27
  """
26
28
 
@@ -69,6 +71,14 @@ class Cache_Base(ABC):
69
71
  def clear(self):
70
72
  pass
71
73
 
74
+ @abstractmethod
75
+ def load_state_dict(self, state_dict):
76
+ pass
77
+
78
+ @abstractmethod
79
+ def state_dict(self, b_deepcopy=True):
80
+ pass
81
+
72
82
  def __getitem__(self, key):
73
83
  # self[key]
74
84
  return self.read(key=key)
@@ -30,6 +30,23 @@ class Memo_Cache(Cache_Base):
30
30
  def clear(self):
31
31
  self.cache_s.clear()
32
32
 
33
+ def load_state_dict(self, state_dict):
34
+ """
35
+ 加载状态
36
+ """
37
+ self.clear()
38
+ self.cache_s.update(state_dict["cache_s"])
39
+
40
+ def state_dict(self, b_deepcopy=True):
41
+ """
42
+ 获取状态
43
+ """
44
+ temp = {"cache_s": self.cache_s}
45
+ if b_deepcopy:
46
+ import kevin_toolbox.nested_dict_list as ndl
47
+ temp = ndl.copy_(var=temp, b_deepcopy=True, b_keep_internal_references=True)
48
+ return temp
49
+
33
50
 
34
51
  # 添加其他别名
35
52
  for name in [":in_memory:Memo", ":in_memory:MC", ":in_memory:memory"]:
@@ -2,9 +2,10 @@ import time
2
2
  from .strategy import Strategy_Base
3
3
  from .cache import Cache_Base
4
4
  from .variable import CACHE_STRATEGY_REGISTRY, CACHE_BUILDER_REGISTRY
5
+ from .cache_manager_wto_strategy import Cache_Manager_wto_Strategy
5
6
 
6
7
 
7
- class Cache_Manager:
8
+ class Cache_Manager(Cache_Manager_wto_Strategy):
8
9
  """
9
10
  缓存管理器
10
11
 
@@ -14,6 +15,7 @@ class Cache_Manager:
14
15
  - 删除并返回条目 pop(key)
15
16
  - 判断是否有该条目 has()
16
17
  - 清空所有内容 clear()
18
+ - 加载和保存状态 load_state_dict(), state_dict()
17
19
 
18
20
  并支持以下用法:
19
21
  通过 len(.) 获取缓存大小,通过 in 操作符判断是否有某个条目
@@ -95,29 +97,7 @@ class Cache_Manager:
95
97
  self.cache = cache # type:Cache_Base
96
98
  self.metadata_s = dict() # 保存条目的相关信息
97
99
 
98
- def add(self, key, value, b_allow_overwrite=True):
99
- """
100
- 以 key 为查询键,将 value 添加到缓存中
101
-
102
- 参数:
103
- key:
104
- value:
105
- b_allow_overwrite: <boolean> 是否允许覆写缓存中已有的条目
106
- 默认为 True
107
- """
108
- # 判断是否需要进行覆写
109
- if self.cache.has(key=key):
110
- if id(value) != id(self.cache.read(key=key)):
111
- if b_allow_overwrite:
112
- self.__remove_of_cache(key=key)
113
- else:
114
- raise KeyError(f'key: {key} already exists, modification of existing entries is prohibited')
115
- else:
116
- return
117
- # 记录到缓存
118
- self.__write_of_cache(key=key, value=value)
119
-
120
- def __write_of_cache(self, key, value):
100
+ def _write_of_cache(self, key, value):
121
101
  """
122
102
  向缓存中新增不存在的条目
123
103
  """
@@ -143,9 +123,9 @@ class Cache_Manager:
143
123
  assert len(suggest_keys) == len(self.cache) - self.paras["refactor_size"], \
144
124
  f'expect {len(self.cache) - self.paras["refactor_size"]} deletion suggestions, but got {len(suggest_keys)}'
145
125
  for key in suggest_keys:
146
- self.__remove_of_cache(key=key)
126
+ self._remove_of_cache(key=key)
147
127
 
148
- def __remove_of_cache(self, key):
128
+ def _remove_of_cache(self, key):
149
129
  """
150
130
  从缓存中删除存在的条目
151
131
  """
@@ -154,43 +134,7 @@ class Cache_Manager:
154
134
  # 通知策略管理器
155
135
  self.strategy.notified_by_remove_of_cache(key=key, metadata=metadata)
156
136
 
157
- def get(self, key, b_add_if_not_found=False, default_factory=None, **kwargs):
158
- """
159
- 获取 key 对应的值
160
-
161
- 参数:
162
- key: <hashable>
163
- default: 默认值
164
- 当 key 在缓存中不存在时返回
165
- default_factory: <callable> 用于产生默认值的函数
166
- 当 key 在缓存中不存在时返回该函数的结果
167
- 使用该参数相对于 default 能延迟默认值的产生(如果不需要用到默认值就不生成),提高效率
168
- 注意!!上面两个参数同时指定时,将以前者为准。
169
- b_add_if_not_found: <boolean> 当 key 在缓存中不存在时,是否添加到缓存中
170
- 默认为 False
171
- """
172
- if self.cache.has(key=key):
173
- value = self.__read_of_cache(key=key)
174
- elif "default" in kwargs or callable(default_factory):
175
- value = kwargs["default"] if "default" in kwargs else default_factory()
176
- if b_add_if_not_found:
177
- self.__write_of_cache(key=key, value=value)
178
- else:
179
- raise KeyError(key)
180
- return value
181
-
182
- def pop(self, key):
183
- """
184
- 从缓存中删除 key 对应的条目,并返回该条目的值
185
- """
186
- if self.cache.has(key=key):
187
- value = self.__read_of_cache(key=key)
188
- self.__remove_of_cache(key=key)
189
- else:
190
- raise KeyError(key)
191
- return value
192
-
193
- def __read_of_cache(self, key):
137
+ def _read_of_cache(self, key):
194
138
  """
195
139
  读取缓存中 已经存在的 条目
196
140
  """
@@ -205,20 +149,26 @@ class Cache_Manager:
205
149
 
206
150
  return value
207
151
 
208
- def has(self, key):
209
- """
210
- 判断 key 是否在缓存中
211
- 注意!!不会更新 metadata
212
- """
213
- return self.cache.has(key=key)
214
-
215
152
  def clear(self):
216
153
  self.cache.clear()
217
154
  self.metadata_s.clear()
218
155
  self.strategy.notified_by_clear_of_cache()
219
156
 
220
- def __len__(self):
221
- return len(self.cache)
157
+ # ---------------------- 用于保存和加载状态 ---------------------- #
158
+ def load_state_dict(self, state_dict):
159
+ """
160
+ 加载状态
161
+ """
162
+ self.clear()
163
+ self.cache.load_state_dict(state_dict=state_dict["cache"])
164
+ self.metadata_s.update(state_dict["metadata_s"])
222
165
 
223
- def __contains__(self, key):
224
- return self.has(key)
166
+ def state_dict(self, b_deepcopy=True):
167
+ """
168
+ 获取状态
169
+ """
170
+ temp = {"cache": self.cache.state_dict(b_deepcopy=False), "metadata_s": self.metadata_s}
171
+ if b_deepcopy:
172
+ import kevin_toolbox.nested_dict_list as ndl
173
+ temp = ndl.copy_(var=temp, b_deepcopy=True, b_keep_internal_references=True)
174
+ return temp
@@ -0,0 +1,157 @@
1
+ from .cache import Cache_Base
2
+ from .variable import CACHE_BUILDER_REGISTRY
3
+
4
+
5
+ class Cache_Manager_wto_Strategy:
6
+ """
7
+ 不绑定任何策略的缓存管理器
8
+
9
+ 提供以下接口:
10
+ - 添加条目 add(key, value, b_allow_overwrite)
11
+ - 获取条目 get(key, b_add_if_not_found, default_factory, default)
12
+ - 删除并返回条目 pop(key)
13
+ - 判断是否有该条目 has()
14
+ - 清空所有内容 clear()
15
+ - 加载和保存状态 load_state_dict(), state_dict()
16
+
17
+ 并支持以下用法:
18
+ 通过 len(.) 获取缓存大小,通过 in 操作符判断是否有某个条目
19
+ """
20
+
21
+ def __init__(self, **kwargs):
22
+ """
23
+ 参数:
24
+ cache: <str/dict/Cache_Base> 缓存种类
25
+ """
26
+ # 默认参数
27
+ paras = {
28
+ "cache": ":in_memory:Memo",
29
+ }
30
+
31
+ # 获取参数
32
+ paras.update(kwargs)
33
+
34
+ # 校验参数
35
+ # cache
36
+ assert isinstance(paras["cache"], (str, dict, Cache_Base)), \
37
+ "cache must be a string, dict of paras or a Cache_Base object"
38
+ if isinstance(paras["cache"], str):
39
+ cache = CACHE_BUILDER_REGISTRY.get(name=paras["cache"])()
40
+ elif isinstance(paras["cache"], dict):
41
+ cache = CACHE_BUILDER_REGISTRY.get(name=paras["cache"]["name"])(**paras["cache"].get("paras", dict()))
42
+ else:
43
+ cache = paras["cache"]
44
+
45
+ self.paras = paras
46
+ self.cache = cache # type:Cache_Base
47
+
48
+ def _write_of_cache(self, key, value):
49
+ """
50
+ 向缓存中新增不存在的条目
51
+ """
52
+ #
53
+ self.cache.write(key=key, value=value)
54
+
55
+ def _remove_of_cache(self, key):
56
+ """
57
+ 从缓存中删除存在的条目
58
+ """
59
+ self.cache.remove(key=key)
60
+
61
+ def _read_of_cache(self, key):
62
+ """
63
+ 读取缓存中 已经存在的 条目
64
+ """
65
+ return self.cache.read(key=key)
66
+
67
+ def add(self, key, value, b_allow_overwrite=True):
68
+ """
69
+ 以 key 为查询键,将 value 添加到缓存中
70
+
71
+ 参数:
72
+ key:
73
+ value:
74
+ b_allow_overwrite: <boolean> 是否允许覆写缓存中已有的条目
75
+ 默认为 True
76
+ """
77
+ # 判断是否需要进行覆写
78
+ if self.cache.has(key=key):
79
+ if id(value) != id(self.cache.read(key=key)):
80
+ if b_allow_overwrite:
81
+ self._remove_of_cache(key=key)
82
+ else:
83
+ raise KeyError(f'key: {key} already exists, modification of existing entries is prohibited')
84
+ else:
85
+ return
86
+ # 记录到缓存
87
+ self._write_of_cache(key=key, value=value)
88
+
89
+ def get(self, key, b_add_if_not_found=False, default_factory=None, **kwargs):
90
+ """
91
+ 获取 key 对应的值
92
+
93
+ 参数:
94
+ key: <hashable>
95
+ default: 默认值
96
+ 当 key 在缓存中不存在时返回
97
+ default_factory: <callable> 用于产生默认值的函数
98
+ 当 key 在缓存中不存在时返回该函数的结果
99
+ 使用该参数相对于 default 能延迟默认值的产生(如果不需要用到默认值就不生成),提高效率
100
+ 注意!!上面两个参数同时指定时,将以前者为准。
101
+ b_add_if_not_found: <boolean> 当 key 在缓存中不存在时,是否添加到缓存中
102
+ 默认为 False
103
+ """
104
+ if self.cache.has(key=key):
105
+ value = self._read_of_cache(key=key)
106
+ elif "default" in kwargs or callable(default_factory):
107
+ value = kwargs["default"] if "default" in kwargs else default_factory()
108
+ if b_add_if_not_found:
109
+ self._write_of_cache(key=key, value=value)
110
+ else:
111
+ raise KeyError(key)
112
+ return value
113
+
114
+ def pop(self, key):
115
+ """
116
+ 从缓存中删除 key 对应的条目,并返回该条目的值
117
+ """
118
+ if self.cache.has(key=key):
119
+ value = self._read_of_cache(key=key)
120
+ self._remove_of_cache(key=key)
121
+ else:
122
+ raise KeyError(key)
123
+ return value
124
+
125
+ def has(self, key):
126
+ """
127
+ 判断 key 是否在缓存中
128
+ 注意!!不会更新 metadata
129
+ """
130
+ return self.cache.has(key=key)
131
+
132
+ def clear(self):
133
+ self.cache.clear()
134
+
135
+ # ---------------------- 用于保存和加载状态 ---------------------- #
136
+ def load_state_dict(self, state_dict):
137
+ """
138
+ 加载状态
139
+ """
140
+ self.clear()
141
+ self.cache.load_state_dict(state_dict=state_dict["cache"])
142
+
143
+ def state_dict(self, b_deepcopy=True):
144
+ """
145
+ 获取状态
146
+ """
147
+ temp = {"cache": self.cache.state_dict(b_deepcopy=False)}
148
+ if b_deepcopy:
149
+ import kevin_toolbox.nested_dict_list as ndl
150
+ temp = ndl.copy_(var=temp, b_deepcopy=True, b_keep_internal_references=True)
151
+ return temp
152
+
153
+ def __len__(self):
154
+ return len(self.cache)
155
+
156
+ def __contains__(self, key):
157
+ return self.has(key)
@@ -1,3 +1,4 @@
1
1
  from .get_subsets import get_subsets
2
2
  from .flatten_list import flatten_list
3
3
  from .chunk_generator import chunk_generator
4
+ from .sample_subset_most_evenly import sample_subset_most_evenly
@@ -0,0 +1,50 @@
1
+ import math
2
+ from kevin_toolbox.patches.for_numpy.random import get_rng
3
+
4
+
5
+ def sample_subset_most_evenly(inputs, ratio=None, nums=None, seed=None, rng=None, b_shuffle_the_tail=True):
6
+ """
7
+ 对列表按给定比例or数量进行采样,并返回一个新的列表,并保证列表中每个元素在新列表中的占比尽量相近
8
+ 说明:
9
+ 根据 ratio/nums 的值,将输入列表重复复制并可能随机打乱尾部元素以保证每个元素都有等概率被选取,
10
+ 生成一个新列表,其长度约为 len(inputs) * ratio nums。
11
+ 以 ratio 为例:
12
+ - 当 ratio 为整数时,返回原列表重复多次的结果;
13
+ - 当 ratio 为非整数时,除了重复复制整数倍部分外,
14
+ 还会从打乱后的列表中随机选取部分元素以达到目标长度。
15
+
16
+ 参数:
17
+ inputs: <iterable> 输入列表或其他可迭代对象
18
+ ratio: <float> 采样比例,
19
+ 采样后新列表长度约为 len(inputs) * ratio
20
+ nums: <int> 采样数量。
21
+ b_shuffle_the_tail: <boolean> 是否对尾部进行随机打乱
22
+ 默认为 True
23
+ seed: <int, optional> 随机种子,用于生成确定性随机数
24
+ 默认为 None
25
+ rng: <Random, optional> 随机数生成器实例
26
+ 仅在b_shuffle_the_tail=True时,以上两个参数起效,且仅需指定一个即可。
27
+
28
+ """
29
+ nums = nums or math.ceil(len(inputs) * ratio)
30
+ assert nums >= 0
31
+ if len(inputs) == 0 or nums == 0:
32
+ return []
33
+
34
+ inputs = list(inputs)
35
+ temp = inputs.copy()
36
+ if b_shuffle_the_tail:
37
+ rng = get_rng(seed=seed, rng=rng)
38
+ rng.shuffle(temp)
39
+
40
+ outputs = [] + inputs * math.floor(nums / len(inputs)) + temp[:nums % len(inputs)]
41
+ return outputs
42
+
43
+
44
+ if __name__ == '__main__':
45
+ print(sample_subset_most_evenly(range(5), ratio=8 / 5, seed=114, b_shuffle_the_tail=False))
46
+ print(sample_subset_most_evenly(range(5), ratio=8 / 5, seed=114, b_shuffle_the_tail=True))
47
+
48
+ #
49
+ print(sample_subset_most_evenly(range(5), nums=8, seed=114, b_shuffle_the_tail=False))
50
+ print(sample_subset_most_evenly(range(5), nums=8, seed=114, b_shuffle_the_tail=True))
@@ -0,0 +1 @@
1
+ from .redirectable_sequence_fetcher import Redirectable_Sequence_Fetcher