kevin-toolbox-dev 1.3.6__tar.gz → 1.3.8__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.
- kevin-toolbox-dev-1.3.8/PKG-INFO +53 -0
- kevin-toolbox-dev-1.3.8/README.md +32 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/__init__.py +2 -2
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/registration/registry.py +10 -2
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/write.py +1 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/__init__.py +1 -1
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/clear_border_of_axes.py +34 -0
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/color/__init__.py +4 -0
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/color/color_format.py +7 -0
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/color/convert_format.py +108 -0
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/color/generate_color_list.py +50 -0
- kevin-toolbox-dev-1.3.8/kevin_toolbox/patches/for_matplotlib/color/get_format.py +12 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_lines.py +1 -1
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters.py +1 -1
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_scatters_matrix.py +1 -1
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/build_study.py +1 -1
- kevin-toolbox-dev-1.3.8/kevin_toolbox_dev.egg-info/PKG-INFO +53 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox_dev.egg-info/SOURCES.txt +6 -1
- kevin-toolbox-dev-1.3.6/PKG-INFO +0 -90
- kevin-toolbox-dev-1.3.6/README.md +0 -69
- kevin-toolbox-dev-1.3.6/kevin_toolbox/patches/for_matplotlib/generate_color_list.py +0 -33
- kevin-toolbox-dev-1.3.6/kevin_toolbox_dev.egg-info/PKG-INFO +0 -90
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/cache_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/memo_cache.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/fifo_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lfu_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lru_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lst_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/strategy_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_builder.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_manager.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/cache_manager/variable.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/pareto_front/optimum_picker.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_for_ndl.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/dangerous/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/cache/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/cache/test/test_cache_manager_for_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/reader/unified_reader.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/read_json.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/json_/write_json.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/read.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation_debug.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/find_tables.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/generate_link.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/generate_table.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/parse_table.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/save_images_in_ndl.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/data_flow/file/markdown/variable.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/decorator/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/decorator/restore_original_work_path.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/temperate/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/developing/test.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/check_version_and_update.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/test/test_version.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/version/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/version/compare_version.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/version/parse_version.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/cache.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/math/utils/split_integer_most_evenly.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/copy_.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/get_nodes.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/read.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/saved_node_name_builder.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/serializer/variable.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/set_default.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/set_value.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/traverse.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/nested_dict_list/value_parser/replace_identical_with_reference.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_logging/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_logging/build_logger.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_bars.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_confusion_matrix.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_matplotlib/common_charts/plot_distribution.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/linalg/entropy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/linalg/softmax.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/random/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/random/get_rng.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/random/truncated_multivariate_normal.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/random/truncated_normal.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_numpy/random/variable.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/build_sampler.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/build_storage.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/copy_study.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_study/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_study/dump.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_study/load.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_trial/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_trial/dump.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/serialize/for_trial/load.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/copy.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/find_files_in_dir.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/pack.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/path/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/path/find_illegal_chars.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/path/replace_illegal_chars.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/remove.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/unpack.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_os/walk.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/pyproject.toml +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/setup.cfg +0 -0
- {kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/setup.py +0 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.3.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.3.8 (2024-08-13)【bug fix】【temporary version】
|
50
|
+
- computer_science.algorithm.registration
|
51
|
+
- modify Registry.collect_from_paths() for python>=3.12,在更高版本的python的importlib中 find_module() 方法已被废弃和移除,因此需要替换为 find_spec() 方法。
|
52
|
+
|
53
|
+
|
@@ -0,0 +1,32 @@
|
|
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.3.8 (2024-08-13)【bug fix】【temporary version】
|
31
|
+
- computer_science.algorithm.registration
|
32
|
+
- modify Registry.collect_from_paths() for python>=3.12,在更高版本的python的importlib中 find_module() 方法已被废弃和移除,因此需要替换为 find_spec() 方法。
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "1.3.
|
1
|
+
__version__ = "1.3.8"
|
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
|
15
|
+
f'--expiration_timestamp 1739089473 --verbose 0'
|
16
16
|
)
|
@@ -283,17 +283,25 @@ class Registry:
|
|
283
283
|
# (快速判断)判断该模块所在目录是否在 path_set 中
|
284
284
|
if loader.path not in path_set:
|
285
285
|
continue
|
286
|
+
|
287
|
+
# 使用 find_spec 代替 find_module
|
288
|
+
module_spec = loader.find_spec(module_name)
|
289
|
+
if module_spec is None:
|
290
|
+
continue
|
291
|
+
path = module_spec.origin # 获取模块的路径
|
292
|
+
|
286
293
|
# is_pkg:
|
287
294
|
# - 为 True 时表示当前遍历到的模块是一个包(即一个包含其他模块或子包的目录)
|
288
295
|
# - 为 False 时表示当前模块是一个普通的 Python 模块(文件),不包含其他模块或子包。
|
289
296
|
if is_pkg:
|
290
297
|
# 若是目录形式的 package,判断是否满足 Path_Ignorer 中的 dirs 对应的规则
|
291
|
-
path = os.path.dirname(loader.find_module(module_name).path)
|
298
|
+
# path = os.path.dirname(loader.find_module(module_name).path)
|
299
|
+
path = os.path.dirname(path)
|
292
300
|
if path_ignorer(Ignore_Scope.DIRS, True, os.path.islink(path), path):
|
293
301
|
continue
|
294
302
|
else:
|
295
303
|
# 若该模块是 module,判断该模块的文件路径是否满足 Path_Ignorer 中的 files 对应的规则
|
296
|
-
path = loader.find_module(module_name).path
|
304
|
+
# path = loader.find_module(module_name).path
|
297
305
|
if path_ignorer(Ignore_Scope.FILES, False, os.path.islink(path), path):
|
298
306
|
continue
|
299
307
|
# 若该模块与调用的文件相同,则报错。
|
@@ -211,6 +211,7 @@ def write(var, output_dir, settings=None, traversal_mode=Traversal_Mode.BFS, b_p
|
|
211
211
|
file_path=os.path.join(temp_output_dir, "record.json"), b_use_suggested_converter=True)
|
212
212
|
|
213
213
|
# 打包成 .tar 文件
|
214
|
+
for_os.remove(path=tgt_path, ignore_errors=True)
|
214
215
|
if b_pack_into_tar:
|
215
216
|
for_os.pack(source=temp_output_dir)
|
216
217
|
os.rename(temp_output_dir + ".tar", output_dir + ".tar")
|
@@ -0,0 +1,34 @@
|
|
1
|
+
def clear_border_of_axes(ax):
|
2
|
+
"""
|
3
|
+
用于清除 ax 中的坐标轴和 ticks
|
4
|
+
"""
|
5
|
+
ax.set_xticks([])
|
6
|
+
ax.set_yticks([])
|
7
|
+
ax.spines['left'].set_color('none')
|
8
|
+
ax.spines['right'].set_color('none')
|
9
|
+
ax.spines['bottom'].set_color('none')
|
10
|
+
ax.spines['top'].set_color('none')
|
11
|
+
return ax
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == '__main__':
|
15
|
+
import matplotlib.pyplot as plt
|
16
|
+
|
17
|
+
#
|
18
|
+
fig, ax = plt.subplots()
|
19
|
+
|
20
|
+
x = [1, 4]
|
21
|
+
y = [1, 10]
|
22
|
+
ax.plot(x, y)
|
23
|
+
|
24
|
+
# 设置坐标轴的范围,以便更好地展示直线
|
25
|
+
ax.set_xlim([0, 5])
|
26
|
+
ax.set_ylim([0, 15])
|
27
|
+
|
28
|
+
# 添加标题和坐标轴标签
|
29
|
+
ax.set_xlabel('X')
|
30
|
+
ax.set_ylabel('Y')
|
31
|
+
clear_border_of_axes(ax)
|
32
|
+
|
33
|
+
# 显示图形
|
34
|
+
plt.show()
|
@@ -0,0 +1,108 @@
|
|
1
|
+
from kevin_toolbox.patches.for_matplotlib.color import Color_Format, get_format
|
2
|
+
|
3
|
+
|
4
|
+
def hex_to_rgba(hex_color):
|
5
|
+
hex_color = hex_color.lstrip('#')
|
6
|
+
assert len(hex_color) in (6, 8), \
|
7
|
+
f'hex_color should be 6 or 8 characters long (not including #). but got {len(hex_color)}'
|
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
|
+
if len(res) == 4:
|
12
|
+
res[3] /= 255
|
13
|
+
return tuple(res)
|
14
|
+
|
15
|
+
|
16
|
+
def rgba_to_hex(rgba):
|
17
|
+
assert len(rgba) in (3, 4), \
|
18
|
+
f'rgba should be 3 or 4 elements long. but got {len(rgba)}'
|
19
|
+
if len(rgba) == 4:
|
20
|
+
rgba = list(rgba)
|
21
|
+
rgba[3] = max(0, min(255, int(255 * rgba[3])))
|
22
|
+
res = "#"
|
23
|
+
for i in rgba:
|
24
|
+
res += f'{i:02X}'
|
25
|
+
return res
|
26
|
+
|
27
|
+
|
28
|
+
NAME_TO_HEX = {
|
29
|
+
'blue': '#0000FF',
|
30
|
+
'red': '#FF0000',
|
31
|
+
'green': '#008000',
|
32
|
+
'orange': '#FFA500',
|
33
|
+
'purple': '#800080',
|
34
|
+
'yellow': '#FFFF00',
|
35
|
+
'brown': '#A52A2A',
|
36
|
+
'pink': '#FFC0CB',
|
37
|
+
'gray': '#808080',
|
38
|
+
'olive': '#808000',
|
39
|
+
'cyan': '#00FFFF'
|
40
|
+
}
|
41
|
+
HEX_TO_NAME = {v: k for k, v in NAME_TO_HEX.items()}
|
42
|
+
|
43
|
+
|
44
|
+
def natural_name_to_hex(name):
|
45
|
+
global NAME_TO_HEX
|
46
|
+
name = name.lower()
|
47
|
+
assert name in NAME_TO_HEX, \
|
48
|
+
f'{name} is not a valid color name.'
|
49
|
+
return NAME_TO_HEX[name]
|
50
|
+
|
51
|
+
|
52
|
+
def hex_to_natural_name(hex_color):
|
53
|
+
global HEX_TO_NAME
|
54
|
+
hex_color = hex_color.upper()[:7]
|
55
|
+
assert hex_color in HEX_TO_NAME, \
|
56
|
+
f'{hex_color} does not has corresponding color name.'
|
57
|
+
return HEX_TO_NAME[hex_color]
|
58
|
+
|
59
|
+
|
60
|
+
CONVERT_PROCESS_S = {
|
61
|
+
(Color_Format.HEX_STR, Color_Format.NATURAL_NAME): hex_to_natural_name, # (from, to): process
|
62
|
+
(Color_Format.HEX_STR, Color_Format.RGBA_ARRAY): hex_to_rgba,
|
63
|
+
(Color_Format.NATURAL_NAME, Color_Format.HEX_STR): natural_name_to_hex,
|
64
|
+
(Color_Format.NATURAL_NAME, Color_Format.RGBA_ARRAY): lambda x: hex_to_rgba(natural_name_to_hex(x)),
|
65
|
+
(Color_Format.RGBA_ARRAY, Color_Format.HEX_STR): rgba_to_hex,
|
66
|
+
(Color_Format.RGBA_ARRAY, Color_Format.NATURAL_NAME): lambda x: hex_to_natural_name(rgba_to_hex(x))
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
def convert_format(var, output_format, input_format=None):
|
71
|
+
"""
|
72
|
+
在各种颜色格式之间进行转换
|
73
|
+
|
74
|
+
参数:
|
75
|
+
var:
|
76
|
+
input_format: <str> 描述输入的格式。
|
77
|
+
支持 HEX_STR、NATURAL_NAME、RGBA_ARRAY 等格式,
|
78
|
+
默认为 None,此时将根据输入推断格式
|
79
|
+
output_format: <str/list of str> 输出的目标格式。
|
80
|
+
当输入是一个 tuple/list 时,将输出其中任一格式,具体规则为:
|
81
|
+
- 当 input_format 不在可选的输出格式中时,优先按照第一个输出格式进行转换。
|
82
|
+
若转换失败,则按照第二个输出格式进行转换。依次类推。
|
83
|
+
- 当 input_format 在可选的输出格式中时,不进行转换。
|
84
|
+
"""
|
85
|
+
global CONVERT_PROCESS_S
|
86
|
+
if input_format is None:
|
87
|
+
input_format = get_format(var=var)
|
88
|
+
input_format = Color_Format(input_format)
|
89
|
+
if not isinstance(output_format, (list, tuple,)):
|
90
|
+
output_format = [output_format]
|
91
|
+
output_format = [Color_Format(i) for i in output_format]
|
92
|
+
|
93
|
+
if input_format in output_format:
|
94
|
+
return var
|
95
|
+
else:
|
96
|
+
for output_format_i in output_format:
|
97
|
+
try:
|
98
|
+
return CONVERT_PROCESS_S[(input_format, output_format_i)](var)
|
99
|
+
except Exception as e:
|
100
|
+
raise Exception(f'fail to convert {var} from {input_format} to {output_format}, beacause: {e}')
|
101
|
+
|
102
|
+
|
103
|
+
if __name__ == '__main__':
|
104
|
+
print(hex_to_rgba('#FF57337F'))
|
105
|
+
print(rgba_to_hex((255, 87, 51, 0.5)))
|
106
|
+
print(natural_name_to_hex('pink'))
|
107
|
+
print(convert_format(var='#FF57337F', input_format='hex_str', output_format='rgba_array'))
|
108
|
+
print(convert_format(var="#0000FF", output_format="rgba_array"))
|
@@ -0,0 +1,50 @@
|
|
1
|
+
from kevin_toolbox.patches.for_matplotlib.color import Color_Format, convert_format
|
2
|
+
from kevin_toolbox.patches.for_numpy import random
|
3
|
+
|
4
|
+
PREDEFINED = ['blue', 'red', 'green', 'orange', 'purple', 'yellow', "brown", "pink", "gray", "olive", "cyan"]
|
5
|
+
PREDEFINED = [convert_format(var=i, output_format=Color_Format.HEX_STR) for i in PREDEFINED]
|
6
|
+
|
7
|
+
population = tuple('0123456789ABCDEF')
|
8
|
+
|
9
|
+
|
10
|
+
def generate_color_list(nums, seed=None, rng=None, exclude_ls=None, output_format=Color_Format.HEX_STR):
|
11
|
+
"""
|
12
|
+
生成颜色列表
|
13
|
+
|
14
|
+
参数:
|
15
|
+
nums: <int> 生成颜色的数量
|
16
|
+
seed,rng: 随机种子或随机生成器,二选一
|
17
|
+
exclude: <list of str> 需要排除的颜色
|
18
|
+
output_format: <Color_Format/str> 输出格式
|
19
|
+
支持 HEX_STR、RGBA_ARRAY 两种格式
|
20
|
+
返回:
|
21
|
+
不包含 alpha 透明度值的颜色列表
|
22
|
+
"""
|
23
|
+
global PREDEFINED, population
|
24
|
+
assert output_format in [Color_Format.HEX_STR, Color_Format.RGBA_ARRAY]
|
25
|
+
output_format = Color_Format(output_format)
|
26
|
+
if exclude_ls is None:
|
27
|
+
exclude_ls = []
|
28
|
+
assert isinstance(exclude_ls, (list, tuple))
|
29
|
+
exclude_ls = set(convert_format(var=i, output_format=Color_Format.HEX_STR) for i in exclude_ls)
|
30
|
+
rng = random.get_rng(seed=seed, rng=rng)
|
31
|
+
|
32
|
+
colors = [i for i in PREDEFINED if i not in exclude_ls][:nums] # 优先输出预定义的颜色
|
33
|
+
|
34
|
+
# 随机生成剩余数量的颜色
|
35
|
+
while len(colors) < nums:
|
36
|
+
c = "#" + ''.join(
|
37
|
+
rng.choice(population, size=6, replace=True))
|
38
|
+
if c not in colors and c not in exclude_ls:
|
39
|
+
colors.append(c)
|
40
|
+
colors = [convert_format(c, output_format=output_format) for c in colors]
|
41
|
+
|
42
|
+
return colors
|
43
|
+
|
44
|
+
|
45
|
+
if __name__ == '__main__':
|
46
|
+
color_list = generate_color_list(1, exclude_ls=['blue'])
|
47
|
+
print(color_list)
|
48
|
+
|
49
|
+
color_list = generate_color_list(nums=1, seed=114, exclude_ls=['#0000FF'])
|
50
|
+
print(color_list)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from kevin_toolbox.patches.for_matplotlib.color import Color_Format
|
2
|
+
|
3
|
+
|
4
|
+
def get_format(var):
|
5
|
+
if isinstance(var, str):
|
6
|
+
if var.startswith("#"):
|
7
|
+
res = Color_Format.HEX_STR
|
8
|
+
else:
|
9
|
+
res = Color_Format.NATURAL_NAME
|
10
|
+
else:
|
11
|
+
res = Color_Format.RGBA_ARRAY
|
12
|
+
return res
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import os
|
2
2
|
import matplotlib.pyplot as plt
|
3
3
|
from kevin_toolbox.patches.for_os.path import replace_illegal_chars
|
4
|
-
from kevin_toolbox.patches.for_matplotlib import generate_color_list
|
4
|
+
from kevin_toolbox.patches.for_matplotlib.color import generate_color_list
|
5
5
|
|
6
6
|
|
7
7
|
def plot_lines(data_s, title, x_name, output_dir=None, **kwargs):
|
@@ -2,7 +2,7 @@ import os
|
|
2
2
|
import pandas as pd
|
3
3
|
import seaborn as sns
|
4
4
|
import matplotlib.pyplot as plt
|
5
|
-
from kevin_toolbox.patches.for_matplotlib import generate_color_list
|
5
|
+
from kevin_toolbox.patches.for_matplotlib.color import generate_color_list
|
6
6
|
from kevin_toolbox.patches.for_os.path import replace_illegal_chars
|
7
7
|
|
8
8
|
|
{kevin-toolbox-dev-1.3.6 → kevin-toolbox-dev-1.3.8}/kevin_toolbox/patches/for_optuna/build_study.py
RENAMED
@@ -24,7 +24,7 @@ def build_study(output_dir=None, feasible_domain_path=None, **kwargs):
|
|
24
24
|
if "storage" in kwargs:
|
25
25
|
if isinstance(kwargs["storage"], (str,)) and kwargs["storage"].startswith("mysql:"):
|
26
26
|
temp_ls = list(kwargs["storage"].split(":", 1))
|
27
|
-
|
27
|
+
temp_ls[0] = "mysql+pymysql"
|
28
28
|
kwargs["storage"] = ":".join(temp_ls)
|
29
29
|
elif isinstance(kwargs["storage"], (dict,)):
|
30
30
|
kwargs["storage"] = build_storage(output_dir=output_dir, **kwargs["storage"]).url
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.3.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.3.8 (2024-08-13)【bug fix】【temporary version】
|
50
|
+
- computer_science.algorithm.registration
|
51
|
+
- modify Registry.collect_from_paths() for python>=3.12,在更高版本的python的importlib中 find_module() 方法已被废弃和移除,因此需要替换为 find_spec() 方法。
|
52
|
+
|
53
|
+
|
@@ -268,7 +268,12 @@ kevin_toolbox/patches/for_matplotlib/__init__.py
|
|
268
268
|
kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py
|
269
269
|
kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py
|
270
270
|
kevin_toolbox/patches/for_matplotlib/arrow3d.py
|
271
|
-
kevin_toolbox/patches/for_matplotlib/
|
271
|
+
kevin_toolbox/patches/for_matplotlib/clear_border_of_axes.py
|
272
|
+
kevin_toolbox/patches/for_matplotlib/color/__init__.py
|
273
|
+
kevin_toolbox/patches/for_matplotlib/color/color_format.py
|
274
|
+
kevin_toolbox/patches/for_matplotlib/color/convert_format.py
|
275
|
+
kevin_toolbox/patches/for_matplotlib/color/generate_color_list.py
|
276
|
+
kevin_toolbox/patches/for_matplotlib/color/get_format.py
|
272
277
|
kevin_toolbox/patches/for_matplotlib/common_charts/__init__.py
|
273
278
|
kevin_toolbox/patches/for_matplotlib/common_charts/plot_bars.py
|
274
279
|
kevin_toolbox/patches/for_matplotlib/common_charts/plot_confusion_matrix.py
|
kevin-toolbox-dev-1.3.6/PKG-INFO
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: kevin-toolbox-dev
|
3
|
-
Version: 1.3.6
|
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.3.6 (2024-07-03)【new feature】
|
50
|
-
- patches
|
51
|
-
- for_os
|
52
|
-
- 【new feature】add find_files_in_dir(),找出目录下带有给定后缀的所有文件的生成器。
|
53
|
-
- for_os.path
|
54
|
-
- 【new feature】add find_illegal_chars(),找出给定的文件名/路径中出现了哪些非法符号。
|
55
|
-
- 【new feature】add replace_illegal_chars(),将给定的文件名/路径中的非法符号替换为合法形式。
|
56
|
-
- for_matplotlib
|
57
|
-
- 【new feature】add module common_charts,新增模块——常用图表,该模块下包含以下函数:
|
58
|
-
- plot_bars(),绘制柱状图
|
59
|
-
- plot_scatters(),绘制散点图
|
60
|
-
- plot_lines(),绘制折线图
|
61
|
-
- plot_distribution(),绘制分布图
|
62
|
-
- plot_scatters_matrix(),绘制散点图矩阵(常用于多变量关系分析)
|
63
|
-
- plot_confusion_matrix(),绘制混淆矩阵(常用于混淆矩阵、相关性矩阵、特征图可视化)
|
64
|
-
- 添加了测试用例。
|
65
|
-
- data_flow.file
|
66
|
-
- markdown
|
67
|
-
- 【new feature】add save_images_in_ndl(),将ndl结构叶节点下的图片对象保存到 plot_dir 中,并替换为该图片的markdown链接。
|
68
|
-
- 便于对表格中的图片或者列表中的图片进行保存和替换。
|
69
|
-
- 【new feature】add find_tables(),用于从文本中找出markdown格式的表格,并以二维数组的列表形式返回。
|
70
|
-
- 【new feature】add parse_table(),将二维数组形式的表格(比如find_tables()的返回列表的元素),解析成指定的格式。
|
71
|
-
- kevin_notation
|
72
|
-
- 【bug fix】fix bug in Kevin_Notation_Writer,增加检验写入的列的元素数量是否一致,不一致时进行报错。
|
73
|
-
- 【bug fix】fix bug in write(),避免对输入参数 metadata 中的内容进行意料之外的改动。
|
74
|
-
- nested_dict_list
|
75
|
-
- add para b_allow_override to serializer.write to allow overwriting,增加参数用于允许强制覆盖已有文件。
|
76
|
-
- computer_science.algorithm
|
77
|
-
- pareto_front
|
78
|
-
- 【new feature】add Optimum_Picker,帕累托最优值选取器。
|
79
|
-
- 记录并更新帕累托最优值
|
80
|
-
- 同时支持监控以下行为,并触发设定的执行器,详见参数 trigger_for_new 和 trigger_for_out。
|
81
|
-
- 新加值是一个新的帕累托最优值
|
82
|
-
- 抛弃一个不再是最优的旧的最优值
|
83
|
-
- statistician
|
84
|
-
- 【new feature】add Accumulator_for_Ndl,适用于 ndl 结构的统计器。
|
85
|
-
- 【bug fix】fix bug in Accumulator_Base._init_var()
|
86
|
-
- 【new feature】modify Average_Accumulator,在 add() 中新增了 weight 参数用于计算带权重的平均值
|
87
|
-
- modify Exponential_Moving_Average,add_sequence() 不再支持 weight_ls 参数,让该接口与其他类更加一致。
|
88
|
-
- 添加了测试用例。
|
89
|
-
|
90
|
-
|
@@ -1,69 +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.3.6 (2024-07-03)【new feature】
|
31
|
-
- patches
|
32
|
-
- for_os
|
33
|
-
- 【new feature】add find_files_in_dir(),找出目录下带有给定后缀的所有文件的生成器。
|
34
|
-
- for_os.path
|
35
|
-
- 【new feature】add find_illegal_chars(),找出给定的文件名/路径中出现了哪些非法符号。
|
36
|
-
- 【new feature】add replace_illegal_chars(),将给定的文件名/路径中的非法符号替换为合法形式。
|
37
|
-
- for_matplotlib
|
38
|
-
- 【new feature】add module common_charts,新增模块——常用图表,该模块下包含以下函数:
|
39
|
-
- plot_bars(),绘制柱状图
|
40
|
-
- plot_scatters(),绘制散点图
|
41
|
-
- plot_lines(),绘制折线图
|
42
|
-
- plot_distribution(),绘制分布图
|
43
|
-
- plot_scatters_matrix(),绘制散点图矩阵(常用于多变量关系分析)
|
44
|
-
- plot_confusion_matrix(),绘制混淆矩阵(常用于混淆矩阵、相关性矩阵、特征图可视化)
|
45
|
-
- 添加了测试用例。
|
46
|
-
- data_flow.file
|
47
|
-
- markdown
|
48
|
-
- 【new feature】add save_images_in_ndl(),将ndl结构叶节点下的图片对象保存到 plot_dir 中,并替换为该图片的markdown链接。
|
49
|
-
- 便于对表格中的图片或者列表中的图片进行保存和替换。
|
50
|
-
- 【new feature】add find_tables(),用于从文本中找出markdown格式的表格,并以二维数组的列表形式返回。
|
51
|
-
- 【new feature】add parse_table(),将二维数组形式的表格(比如find_tables()的返回列表的元素),解析成指定的格式。
|
52
|
-
- kevin_notation
|
53
|
-
- 【bug fix】fix bug in Kevin_Notation_Writer,增加检验写入的列的元素数量是否一致,不一致时进行报错。
|
54
|
-
- 【bug fix】fix bug in write(),避免对输入参数 metadata 中的内容进行意料之外的改动。
|
55
|
-
- nested_dict_list
|
56
|
-
- add para b_allow_override to serializer.write to allow overwriting,增加参数用于允许强制覆盖已有文件。
|
57
|
-
- computer_science.algorithm
|
58
|
-
- pareto_front
|
59
|
-
- 【new feature】add Optimum_Picker,帕累托最优值选取器。
|
60
|
-
- 记录并更新帕累托最优值
|
61
|
-
- 同时支持监控以下行为,并触发设定的执行器,详见参数 trigger_for_new 和 trigger_for_out。
|
62
|
-
- 新加值是一个新的帕累托最优值
|
63
|
-
- 抛弃一个不再是最优的旧的最优值
|
64
|
-
- statistician
|
65
|
-
- 【new feature】add Accumulator_for_Ndl,适用于 ndl 结构的统计器。
|
66
|
-
- 【bug fix】fix bug in Accumulator_Base._init_var()
|
67
|
-
- 【new feature】modify Average_Accumulator,在 add() 中新增了 weight 参数用于计算带权重的平均值
|
68
|
-
- modify Exponential_Moving_Average,add_sequence() 不再支持 weight_ls 参数,让该接口与其他类更加一致。
|
69
|
-
- 添加了测试用例。
|
@@ -1,33 +0,0 @@
|
|
1
|
-
import random
|
2
|
-
|
3
|
-
PREDEFINED = ['blue', 'red', 'green', 'orange', 'purple', 'yellow', "brown", "pink", "gray", "olive", "cyan"]
|
4
|
-
|
5
|
-
|
6
|
-
def generate_color_list(nums, seed=None, exclude_ls=None):
|
7
|
-
"""
|
8
|
-
参数:
|
9
|
-
nums: <int> 生成颜色的数量
|
10
|
-
seed: 随机种子
|
11
|
-
exclude: <list of str> 需要排除的颜色
|
12
|
-
"""
|
13
|
-
global PREDEFINED
|
14
|
-
if exclude_ls is None:
|
15
|
-
exclude_ls = []
|
16
|
-
assert isinstance(exclude_ls, (list, tuple))
|
17
|
-
|
18
|
-
colors = [i for i in PREDEFINED if i not in exclude_ls][:nums] # 优先输出预定义的颜色
|
19
|
-
|
20
|
-
# 随机生成剩余数量的颜色
|
21
|
-
if seed is not None:
|
22
|
-
random.seed(seed)
|
23
|
-
while len(colors) < nums:
|
24
|
-
c = "#" + ''.join(random.choices('0123456789ABCDEF', k=6))
|
25
|
-
if c not in colors and c not in exclude_ls:
|
26
|
-
colors.append(c)
|
27
|
-
|
28
|
-
return colors
|
29
|
-
|
30
|
-
|
31
|
-
if __name__ == '__main__':
|
32
|
-
color_list = generate_color_list(20)
|
33
|
-
print(color_list)
|