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