kevin-toolbox-dev 1.3.2__tar.gz → 1.3.3__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.3/PKG-INFO +70 -0
- kevin-toolbox-dev-1.3.3/README.md +49 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/__init__.py +2 -2
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/reader/file_iterative_reader.py +44 -9
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/reader/unified_reader.py +2 -2
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/__init__.py +2 -2
- kevin-toolbox-dev-1.3.3/kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py +23 -0
- kevin-toolbox-dev-1.3.2/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple.py → kevin-toolbox-dev-1.3.3/kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py +7 -5
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/read_json.py +3 -3
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/write_json.py +3 -3
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py +6 -5
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/read.py +4 -2
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/test_kevin_notation.py +15 -3
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/markdown/generate_table.py +2 -2
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/utils/__init__.py +1 -1
- kevin-toolbox-dev-1.3.2/kevin_toolbox/math/utils/spilt_integer_most_evenly.py → kevin-toolbox-dev-1.3.3/kevin_toolbox/math/utils/split_integer_most_evenly.py +2 -2
- kevin-toolbox-dev-1.3.3/kevin_toolbox/patches/for_numpy/random/get_rng.py +64 -0
- kevin-toolbox-dev-1.3.3/kevin_toolbox_dev.egg-info/PKG-INFO +70 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox_dev.egg-info/SOURCES.txt +3 -3
- kevin-toolbox-dev-1.3.2/PKG-INFO +0 -91
- kevin-toolbox-dev-1.3.2/README.md +0 -73
- kevin-toolbox-dev-1.3.2/kevin_toolbox/data_flow/file/json_/converter/escape_tuple.py +0 -20
- kevin-toolbox-dev-1.3.2/kevin_toolbox/patches/for_numpy/random/get_rng.py +0 -18
- kevin-toolbox-dev-1.3.2/kevin_toolbox_dev.egg-info/PKG-INFO +0 -91
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/cache_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/cache/memo_cache.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/cache_manager.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/fifo_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lfu_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lru_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/lst_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/strategy/strategy_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_builder.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_manager.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/test/test_cache_strategy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/cache_manager/variable.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_get_subset_with_largest_product.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/test/test_zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/combinatorial_optimization/zero_one_knapsack_problem.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/execution_graph/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/execution_graph/jump_node.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/execution_graph/random_node.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/execution_graph/simple_node.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_dict/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_dict/deep_update.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_seq/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_seq/chunk_generator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_seq/flatten_list.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/for_seq/get_subsets.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/locks/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/locks/mutex_lock.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/async_executor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/parallel_and_concurrent/multi_thread_execute.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/pareto_front/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/pareto_front/get_pareto_points_idx.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/registration/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/registration/registry.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/scheduler/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/scheduler/strategy_manager.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/scheduler/trigger.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/search/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/search/binary_search.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/accumulator_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/average_accumulator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/exponential_moving_average.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/init_var/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_data_format.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/statistician/init_var/init_by_like.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/algorithm/utils/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/data_structure/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/computer_science/data_structure/executor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/dangerous/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/dangerous/dump_into_pickle_with_executor_attached.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/cache/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/cache/cache_manager_for_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/cache/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/cache/test/test_cache_manager_for_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/reader/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/core/reader/unified_reader_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/integrate.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/converter.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_writer.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_0.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_1.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/test/test_data/data_all.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/kevin_notation/write.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/markdown/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/markdown/generate_link.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/markdown/generate_list.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/decorator/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/decorator/restore_original_work_path.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/consumer.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/for_cvf.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/getter.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/graph.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/node.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/producer.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/producer_consumer/sender.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/singleton/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/design_pattern/singleton/singleton_for_uid.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/general_matrix_multiplication.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/numerical_characteristics/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/numerical_characteristics/iou.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/temperate/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/temperate/iterator_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/temperate/my_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/temperate/my_iterator_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/temperate/sequence_map_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/developing/test.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/check_validity_and_uninstall.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/check_version_and_update.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/test/test_version.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/version/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/version/compare_version.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/version/parse_version.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/env_info/version/sort_version_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/__old_version/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/__old_version/cal_iou_between_box.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/boolean_algebra_for_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/cal_area_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/cal_iou_between_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/convert_boxes_from_coord_to_grid_index.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/detect_collision.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/detect_collision_among_boxes_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/detect_collision_inside_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/detect_overlap.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/geometry/for_boxes/get_ticks_of_boxes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/analysis/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/analysis/get_fail_case_from_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/dummy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/dummy/dummy_data.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/build_generator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/build_iterator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/factory.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_axis.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/along_diagonal.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_all.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__by_block/of_triangle.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_block.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/get_executor_ls/by_samples.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/dataset/face/verification/merge.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/accumulator_for_cfm.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_cfm_iteratively_by_chunk.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/cal_tpr_and_fpr.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/convert.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/machine_learning/statistician/binary_classification/confusion_matrices/merge_cfm_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/concat_and_split/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/concat_and_split/computational_tree.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/concat_and_split/concat_crops_into_whole.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/concat_and_split/split_whole_into_crops.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/convert/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/convert/convert_format.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/generate/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/generate/generate_integrated_api.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/generate/generate_shuffled_index_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/generate/generate_z_pattern_indices_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/coordinates/generate/normal_indices_generator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/reshape/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/reshape/flatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/reshape/merge_blocks.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/reshape/split_blocks.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/reshape/unflatten_along_pattern.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/transpose/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/transpose/get_inverse_of_transpose_index_ls.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/dimension/transpose/transpose_inside_axis.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/cache.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/get_primes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/test/test_get_greatest_common_divisor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/test/test_get_primes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/number_theory/test/test_prime_factorization.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/dct/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/dct/dct_calculator.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/dct/generate_dct_trans_matrix.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/scaling_and_shift/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/transform/scaling_and_shift/scaling.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/utils/convert_dtype.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/utils/get_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/math/utils/set_crop_by_box.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/copy_.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/count_leaf_node_nums.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/get_hash.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/get_nodes.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/get_value.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/name_handler/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/name_handler/build_name.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/name_handler/escape_node.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/name_handler/parse_name.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_json_.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_ndl.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_bin.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_numpy_npy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_pickle_.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_all.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_skip_simple.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_all.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/_torch_tensor.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/backends/backend_base.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/enum_variable.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/read.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/variable.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/serializer/write.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/set_default.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/set_value.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/traverse.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/value_parser/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/value_parser/cal_relation_between_references.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/value_parser/eval_references.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/value_parser/parse_and_eval_references.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/nested_dict_list/value_parser/parse_references.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_logging/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_logging/build_logger.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_matplotlib/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_matplotlib/add_trajectory_2d.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_matplotlib/add_trajectory_3d.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_matplotlib/arrow3d.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_matplotlib/generate_color_list.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/linalg/cos_similar.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/linalg/entropy.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/linalg/normalize.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/linalg/softmax.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/random/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/random/truncated_multivariate_normal.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/random/truncated_normal.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_numpy/random/variable.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/build_sampler.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/build_storage.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/build_study.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/copy_study.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/sample_from_feasible_domain.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_study/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_study/dump.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_study/load.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_trial/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_trial/dump.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_optuna/serialize/for_trial/load.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_os/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_os/pack.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_os/remove.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_os/unpack.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_os/walk.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_test/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_test/check_consistency.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/concat.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/linalg/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/linalg/norm.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/linalg/svd.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/nn/sequential.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/tile.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/compatible/where.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/math/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/math/get_y_at_x.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/math/my_around.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/nn/__init__.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/patches/for_torch/nn/lambda_layer.py +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox_dev.egg-info/dependency_links.txt +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox_dev.egg-info/requires.txt +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox_dev.egg-info/top_level.txt +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/pyproject.toml +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/setup.cfg +0 -0
- {kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/setup.py +0 -0
@@ -0,0 +1,70 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.3.3
|
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.3 (2024-04-01)【bug fix】【new feature】
|
50
|
+
- math.utils
|
51
|
+
- 【bug fix】更正拼写错误,将原有的 spilt_integer_most_evenly() 中的 "spilt" 改正为 "split",新的函数名为 split_integer_most_evenly
|
52
|
+
|
53
|
+
- patches.for_numpy.random
|
54
|
+
- 【bug fix】modify get_rng(),改进以避免遇到 rng 中不存在的函数时报错。
|
55
|
+
|
56
|
+
- data_flow.file
|
57
|
+
- json_
|
58
|
+
- 【new feature】将 escape_tuple() 改成 escape_tuple_and_set(),新增对 set 进行处理。
|
59
|
+
- 【new feature】将 unescape_tuple() 改成 unescape_tuple_and_set()。
|
60
|
+
|
61
|
+
- core.reader
|
62
|
+
- 【new feature】为 File_Iterative_Reader 新增了 file_obj 参数,支持直接输入文件对象。
|
63
|
+
|
64
|
+
- kevin_notation
|
65
|
+
- 【new feature】根据 File_Iterative_Reader 的修改,为 Kevin_Notation_Reader 和 read() 对应增加 file_obj 参数,以支持直接输入文件对象。
|
66
|
+
- 补充了对应的测试用例。
|
67
|
+
|
68
|
+
|
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.3.3 (2024-04-01)【bug fix】【new feature】
|
31
|
+
- math.utils
|
32
|
+
- 【bug fix】更正拼写错误,将原有的 spilt_integer_most_evenly() 中的 "spilt" 改正为 "split",新的函数名为 split_integer_most_evenly
|
33
|
+
|
34
|
+
- patches.for_numpy.random
|
35
|
+
- 【bug fix】modify get_rng(),改进以避免遇到 rng 中不存在的函数时报错。
|
36
|
+
|
37
|
+
- data_flow.file
|
38
|
+
- json_
|
39
|
+
- 【new feature】将 escape_tuple() 改成 escape_tuple_and_set(),新增对 set 进行处理。
|
40
|
+
- 【new feature】将 unescape_tuple() 改成 unescape_tuple_and_set()。
|
41
|
+
|
42
|
+
- core.reader
|
43
|
+
- 【new feature】为 File_Iterative_Reader 新增了 file_obj 参数,支持直接输入文件对象。
|
44
|
+
|
45
|
+
- kevin_notation
|
46
|
+
- 【new feature】根据 File_Iterative_Reader 的修改,为 Kevin_Notation_Reader 和 read() 对应增加 file_obj 参数,以支持直接输入文件对象。
|
47
|
+
- 补充了对应的测试用例。
|
48
|
+
|
49
|
+
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__ = "1.3.
|
1
|
+
__version__ = "1.3.3"
|
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 1727520805 --verbose 0'
|
16
16
|
)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
import copy
|
2
3
|
|
3
4
|
|
4
5
|
class File_Iterative_Reader:
|
@@ -12,11 +13,14 @@ class File_Iterative_Reader:
|
|
12
13
|
设定关键参数
|
13
14
|
必要参数:
|
14
15
|
file_path: 文件路径
|
16
|
+
file_obj: 文件对象
|
17
|
+
注意!!以上两个参数指定其一即可,同时指定时候,以后者为准。
|
15
18
|
读取模式相关参数:
|
16
19
|
paras_for_open: open() 函数的补充参数
|
17
20
|
mode: 读取模式,默认为 "lines"
|
18
21
|
"lines": 按行数计算批次大小
|
19
22
|
"bytes": 按字节数计算
|
23
|
+
注意!!以上两个参数在指定了 file_obj 参数后将失效。
|
20
24
|
chunk_size: 批次大小
|
21
25
|
默认为 1k
|
22
26
|
当为-1时,读取整个文件
|
@@ -51,6 +55,7 @@ class File_Iterative_Reader:
|
|
51
55
|
paras = {
|
52
56
|
# 必要参数
|
53
57
|
"file_path": None,
|
58
|
+
"file_obj": None,
|
54
59
|
# 读取模式相关参数
|
55
60
|
"paras_for_open": dict(mode="r", encoding='utf-8'),
|
56
61
|
"mode": "lines",
|
@@ -74,16 +79,21 @@ class File_Iterative_Reader:
|
|
74
79
|
assert mode in ["lines", "bytes"]
|
75
80
|
paras["chunk_size"] = int(paras["chunk_size"])
|
76
81
|
paras["loop_num"] = int(paras["loop_num"]) - 1
|
77
|
-
#
|
78
|
-
file_path = paras["file_path"]
|
79
|
-
assert isinstance(file_path, (str,)) and os.path.exists(file_path), \
|
80
|
-
Exception(f"Error: file {file_path} not exists!")
|
81
|
-
#
|
82
|
-
paras_for_open = paras["paras_for_open"]
|
83
|
-
assert isinstance(paras_for_open, (dict,))
|
84
82
|
|
85
83
|
# 获取文件对象
|
86
|
-
|
84
|
+
if paras["file_obj"] is None:
|
85
|
+
assert isinstance(paras["file_path"], (str,)) and os.path.isfile(paras["file_path"]), \
|
86
|
+
Exception(f'Error: file {paras["file_path"]} not exists!')
|
87
|
+
#
|
88
|
+
assert isinstance(paras["paras_for_open"], (dict,))
|
89
|
+
self.file = open(paras["file_path"], **paras["paras_for_open"])
|
90
|
+
else:
|
91
|
+
# 拷贝对象,防止修改外部对象
|
92
|
+
try:
|
93
|
+
self.file = copy.deepcopy(paras["file_obj"])
|
94
|
+
except:
|
95
|
+
self.file = open(paras["file_obj"].name, mode=paras["file_obj"].mode)
|
96
|
+
|
87
97
|
# 选择相应模式
|
88
98
|
self.__read_func = {"lines": self.__read_lines, "bytes": self.__read_bytes}[mode]
|
89
99
|
self.__jump_func = {"lines": self.__jump_lines, "bytes": self.__jump_bytes}[mode]
|
@@ -225,9 +235,34 @@ class File_Iterative_Reader:
|
|
225
235
|
if __name__ == "__main__":
|
226
236
|
import numpy as np
|
227
237
|
|
228
|
-
|
238
|
+
print("使用 file_path")
|
239
|
+
reader = File_Iterative_Reader(file_path="test/test_data/test_data.txt", chunk_size=2, drop=True, loop_num=2,
|
229
240
|
pre_jump_size=3, convert_func=lambda x: np.array(x))
|
230
241
|
for i in reader:
|
231
242
|
print(i)
|
232
243
|
|
233
244
|
del reader
|
245
|
+
|
246
|
+
print("使用 file_obj")
|
247
|
+
reader = File_Iterative_Reader(
|
248
|
+
file_obj=open("test/test_data/test_data.txt", "r"), chunk_size=2, drop=True, loop_num=2,
|
249
|
+
pre_jump_size=3, convert_func=lambda x: np.array(x))
|
250
|
+
for i in reader:
|
251
|
+
print(i)
|
252
|
+
|
253
|
+
del reader
|
254
|
+
|
255
|
+
print("从字符串构建文件对象作为 file_obj")
|
256
|
+
from io import StringIO
|
257
|
+
|
258
|
+
file_obj = StringIO(initial_value=open("test/test_data/test_data.txt", "r").read())
|
259
|
+
reader = File_Iterative_Reader(
|
260
|
+
file_obj=file_obj, chunk_size=2, drop=True, loop_num=2,
|
261
|
+
pre_jump_size=3, convert_func=lambda x: np.array(x))
|
262
|
+
for i in reader:
|
263
|
+
print(i)
|
264
|
+
|
265
|
+
print("证明不会修改外部对象")
|
266
|
+
print(file_obj.read())
|
267
|
+
|
268
|
+
del reader
|
@@ -49,7 +49,7 @@ if __name__ == '__main__':
|
|
49
49
|
print(reader.read([3, 3]).shape)
|
50
50
|
print(reader.find(1))
|
51
51
|
|
52
|
-
reader = UReader(file_path="test_data.txt", chunk_size=2, folder_path="./temp/233")
|
52
|
+
reader = UReader(file_path="test/test_data/test_data.txt", chunk_size=2, folder_path="./temp/233")
|
53
53
|
|
54
54
|
print(reader.read(2, 7))
|
55
55
|
# del reader
|
@@ -67,7 +67,7 @@ if __name__ == '__main__':
|
|
67
67
|
|
68
68
|
print(reader.find('data/6/horse_race_pan/2132020102319002000161_43_4.bmp'))
|
69
69
|
|
70
|
-
reader = Reader_for_files(file_path="test_data.txt", chunk_size=2, pre_jump_size=2, jump_size=2)
|
70
|
+
reader = Reader_for_files(file_path="test/test_data/test_data.txt", chunk_size=2, pre_jump_size=2, jump_size=2)
|
71
71
|
|
72
72
|
for i in reader:
|
73
73
|
print(2333, i)
|
@@ -2,6 +2,6 @@ from .convert_dict_key_to_number import convert_dict_key_to_number
|
|
2
2
|
from .convert_ndarray_to_list import convert_ndarray_to_list
|
3
3
|
from .escape_non_str_dict_key import escape_non_str_dict_key
|
4
4
|
from .unescape_non_str_dict_key import unescape_non_str_dict_key
|
5
|
-
from .
|
6
|
-
from .
|
5
|
+
from .escape_tuple_and_set import escape_tuple_and_set
|
6
|
+
from .unescape_tuple_and_set import unescape_tuple_and_set
|
7
7
|
from .integrate import integrate
|
@@ -0,0 +1,23 @@
|
|
1
|
+
def escape_tuple_and_set(x):
|
2
|
+
"""
|
3
|
+
将 tuple 和 set 进行转义
|
4
|
+
转义: x ==> f"<eval>{x}"
|
5
|
+
反转义: f"<eval>{x}" ==> x
|
6
|
+
|
7
|
+
为什么要进行转义?
|
8
|
+
由于 json 中会将 tuple 作为 list 进行保存,同时也无法保存 set,因此在保存过程中会丢失相应信息。
|
9
|
+
"""
|
10
|
+
if isinstance(x, (tuple, set,)) or (isinstance(x, (str,)) and x.startswith("<eval>")):
|
11
|
+
return f'<eval>{x}'
|
12
|
+
else:
|
13
|
+
return x
|
14
|
+
|
15
|
+
|
16
|
+
if __name__ == '__main__':
|
17
|
+
print(escape_tuple_and_set((1, 2, "\'1\'")))
|
18
|
+
# <eval>(1, 2, "'1'")
|
19
|
+
print(escape_tuple_and_set({"1", (1, 2, 3), 233}))
|
20
|
+
# <eval>{'1', 233, (1, 2, 3)}
|
21
|
+
|
22
|
+
print(escape_tuple_and_set("<eval>233"))
|
23
|
+
# <eval><eval>233
|
@@ -1,11 +1,11 @@
|
|
1
|
-
def
|
1
|
+
def unescape_tuple_and_set(x):
|
2
2
|
"""
|
3
|
-
将 tuple 进行反转义
|
3
|
+
将 tuple 和 set 进行反转义
|
4
4
|
转义: x ==> f"<eval>{x}"
|
5
5
|
反转义: f"<eval>{x}" ==> x
|
6
6
|
|
7
7
|
为什么要进行转义?
|
8
|
-
由于 json 中会将 tuple 作为 list
|
8
|
+
由于 json 中会将 tuple 作为 list 进行保存,同时也无法保存 set,因此在保存过程中会丢失相应信息。
|
9
9
|
"""
|
10
10
|
if isinstance(x, str) and x.startswith("<eval>"):
|
11
11
|
x = x[6:]
|
@@ -17,7 +17,9 @@ def unescape_tuple(x):
|
|
17
17
|
|
18
18
|
|
19
19
|
if __name__ == '__main__':
|
20
|
-
print(
|
20
|
+
print(unescape_tuple_and_set("<eval>(1, 2, \"'1'\")"))
|
21
21
|
# (1, 2, "\'1\'")
|
22
|
-
print(
|
22
|
+
print(unescape_tuple_and_set("<eval>{'1', 233, (1, 2, 3)}"))
|
23
|
+
# {'1', 233, (1, 2, 3)}
|
24
|
+
print(unescape_tuple_and_set("<eval><eval>233"))
|
23
25
|
# "<eval>233"
|
{kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/read_json.py
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
import os
|
2
2
|
import json
|
3
|
-
from kevin_toolbox.data_flow.file.json_.converter import integrate,
|
3
|
+
from kevin_toolbox.data_flow.file.json_.converter import integrate, unescape_tuple_and_set, unescape_non_str_dict_key
|
4
4
|
from kevin_toolbox.nested_dict_list import traverse
|
5
5
|
|
6
6
|
|
@@ -14,14 +14,14 @@ def read_json(file_path, converters=None, b_use_suggested_converter=False):
|
|
14
14
|
转换器 converter 应该是一个形如 def(x): ... ; return x 的函数,具体可以参考
|
15
15
|
json_.converter 中已实现的转换器
|
16
16
|
b_use_suggested_converter: <boolean> 是否使用建议的转换器
|
17
|
-
建议使用 unescape/escape_non_str_dict_key 和 unescape/
|
17
|
+
建议使用 unescape/escape_non_str_dict_key 和 unescape/escape_tuple_and_set 这两对转换器,
|
18
18
|
可以避免因 json 的读取/写入而丢失部分信息。
|
19
19
|
默认为 False。
|
20
20
|
注意:当 converters 非 None,此参数失效,以 converters 中的具体设置为准
|
21
21
|
"""
|
22
22
|
assert os.path.isfile(file_path), f'file {file_path} not found'
|
23
23
|
if converters is None and b_use_suggested_converter:
|
24
|
-
converters = [
|
24
|
+
converters = [unescape_tuple_and_set, unescape_non_str_dict_key]
|
25
25
|
|
26
26
|
with open(file_path, 'r') as f:
|
27
27
|
content = json.load(f)
|
{kevin-toolbox-dev-1.3.2 → kevin-toolbox-dev-1.3.3}/kevin_toolbox/data_flow/file/json_/write_json.py
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
import os
|
2
2
|
import json
|
3
3
|
import copy
|
4
|
-
from kevin_toolbox.data_flow.file.json_.converter import integrate,
|
4
|
+
from kevin_toolbox.data_flow.file.json_.converter import integrate, escape_tuple_and_set, escape_non_str_dict_key
|
5
5
|
from kevin_toolbox.nested_dict_list import traverse
|
6
6
|
|
7
7
|
|
@@ -18,7 +18,7 @@ def write_json(content, file_path, sort_keys=False, converters=None, b_use_sugge
|
|
18
18
|
转换器 converter 应该是一个形如 def(x): ... ; return x 的函数,具体可以参考
|
19
19
|
json_.converter 中已实现的转换器
|
20
20
|
b_use_suggested_converter: <boolean> 是否使用建议的转换器
|
21
|
-
建议使用 unescape/escape_non_str_dict_key 和 unescape/
|
21
|
+
建议使用 unescape/escape_non_str_dict_key 和 unescape/escape_tuple_and_set 这两对转换器,
|
22
22
|
可以避免因 json 的读取/写入而丢失部分信息。
|
23
23
|
默认为 False。
|
24
24
|
注意:当 converters 非 None,此参数失效,以 converters 中的具体设置为准
|
@@ -26,7 +26,7 @@ def write_json(content, file_path, sort_keys=False, converters=None, b_use_sugge
|
|
26
26
|
assert isinstance(file_path, (str, type(None)))
|
27
27
|
|
28
28
|
if converters is None and b_use_suggested_converter:
|
29
|
-
converters = [
|
29
|
+
converters = [escape_tuple_and_set, escape_non_str_dict_key]
|
30
30
|
|
31
31
|
if converters is not None:
|
32
32
|
converter = integrate(converters)
|
@@ -15,6 +15,8 @@ class Kevin_Notation_Reader:
|
|
15
15
|
|
16
16
|
必要参数:
|
17
17
|
file_path: <string> 文件路径
|
18
|
+
file_obj: <file object> 文件对象
|
19
|
+
以上参数2选一,具体参见 File_Iterative_Reader
|
18
20
|
读取相关参数:
|
19
21
|
chunk_size: <integer> 每次读取多少行数据
|
20
22
|
beg: <integer> 开始读取的位置
|
@@ -28,6 +30,7 @@ class Kevin_Notation_Reader:
|
|
28
30
|
paras = {
|
29
31
|
# 必要参数
|
30
32
|
"file_path": None,
|
33
|
+
"file_obj": None,
|
31
34
|
# 读取相关参数
|
32
35
|
"chunk_size": 100,
|
33
36
|
"beg": 0,
|
@@ -38,9 +41,7 @@ class Kevin_Notation_Reader:
|
|
38
41
|
paras.update(kwargs)
|
39
42
|
|
40
43
|
# 校验参数
|
41
|
-
|
42
|
-
f'file not exists :{paras["file_path"]}'
|
43
|
-
#
|
44
|
+
# file_path 和 file_obj 交给 File_Iterative_Reader 校验
|
44
45
|
assert isinstance(paras["chunk_size"], (int,)) and (paras["chunk_size"] > 0 or paras["chunk_size"] == -1)
|
45
46
|
assert isinstance(paras["beg"], (int,)) and paras["beg"] >= 0
|
46
47
|
assert isinstance(paras["converter"], (Converter, dict,))
|
@@ -48,7 +49,7 @@ class Kevin_Notation_Reader:
|
|
48
49
|
self.paras = paras
|
49
50
|
|
50
51
|
# 读取开头
|
51
|
-
self.reader = File_Iterative_Reader(file_path=self.paras["file_path"],
|
52
|
+
self.reader = File_Iterative_Reader(file_path=self.paras["file_path"], file_obj=self.paras["file_obj"],
|
52
53
|
pre_jump_size=self.paras["beg"],
|
53
54
|
filter_=lambda x: x != "\n" and not x.startswith("//"), # 去除注释
|
54
55
|
map_func=lambda x: x.rsplit("\n", 1)[0].split("//", 1)[0],
|
@@ -64,7 +65,7 @@ class Kevin_Notation_Reader:
|
|
64
65
|
del self.reader
|
65
66
|
|
66
67
|
# 读取内容
|
67
|
-
self.reader = File_Iterative_Reader(file_path=self.paras["file_path"],
|
68
|
+
self.reader = File_Iterative_Reader(file_path=self.paras["file_path"], file_obj=self.paras["file_obj"],
|
68
69
|
pre_jump_size=self.paras["beg"] + offset,
|
69
70
|
filter_=lambda x: x != "\n" and not x.startswith("//"), # 去除注释
|
70
71
|
map_func=lambda x: x.rsplit("\n", 1)[0].split("//", 1)[0],
|
@@ -1,11 +1,13 @@
|
|
1
1
|
from kevin_toolbox.data_flow.file import kevin_notation
|
2
2
|
|
3
3
|
|
4
|
-
def read(file_path):
|
4
|
+
def read(file_path=None, file_obj=None):
|
5
5
|
"""
|
6
6
|
读取整个文件的快捷接口
|
7
7
|
"""
|
8
|
-
|
8
|
+
assert file_path is not None or file_obj is not None
|
9
|
+
|
10
|
+
with kevin_notation.Reader(file_path=file_path, chunk_size=-1, file_obj=file_obj) as reader:
|
9
11
|
# metadata
|
10
12
|
metadata = reader.metadata
|
11
13
|
# content
|
@@ -134,11 +134,23 @@ def test_writer_1(expected_metadata, expected_content, file_path):
|
|
134
134
|
zip(metadata_ls, content_ls, file_path_ls))
|
135
135
|
def test_read(expected_metadata, expected_content, file_path):
|
136
136
|
print("test read()")
|
137
|
-
# 读取
|
137
|
+
# 使用 file_path 读取
|
138
138
|
metadata, content = kevin_notation.read(file_path=file_path)
|
139
|
+
|
140
|
+
# 使用 file_obj 读取
|
141
|
+
file_obj = open(file_path, "r")
|
142
|
+
metadata_1, content_1 = kevin_notation.read(file_obj=file_obj)
|
143
|
+
assert len(file_obj.read()) > 0 # 不影响输入的 file_obj
|
144
|
+
|
145
|
+
# 使用字符串构造 file_obj 读取
|
146
|
+
from io import StringIO
|
147
|
+
file_obj = StringIO(initial_value=open(file_path, "r").read())
|
148
|
+
metadata_2, content_2 = kevin_notation.read(file_obj=file_obj)
|
149
|
+
assert len(file_obj.read()) > 0
|
150
|
+
|
139
151
|
# 检验
|
140
|
-
check_consistency(expected_metadata, metadata)
|
141
|
-
check_consistency(expected_content, content)
|
152
|
+
check_consistency(expected_metadata, metadata, metadata_1, metadata_2)
|
153
|
+
check_consistency(expected_content, content, content_1, content_2)
|
142
154
|
|
143
155
|
|
144
156
|
@pytest.mark.parametrize("expected_metadata, expected_content, file_path",
|
@@ -1,4 +1,4 @@
|
|
1
|
-
from kevin_toolbox.math.utils import
|
1
|
+
from kevin_toolbox.math.utils import split_integer_most_evenly
|
2
2
|
|
3
3
|
|
4
4
|
def generate_table(content_s, orientation="vertical", chunk_nums=None, chunk_size=None, b_allow_misaligned_values=False,
|
@@ -60,7 +60,7 @@ def generate_table(content_s, orientation="vertical", chunk_nums=None, chunk_siz
|
|
60
60
|
# 按照 chunk_nums 或者 chunk_size 对表格进行分割
|
61
61
|
if chunk_nums is not None or chunk_size is not None:
|
62
62
|
if chunk_nums is not None:
|
63
|
-
split_len_ls =
|
63
|
+
split_len_ls = split_integer_most_evenly(x=max_length, group_nums=chunk_nums)
|
64
64
|
else:
|
65
65
|
split_len_ls = [chunk_size] * (max_length // chunk_size)
|
66
66
|
if max_length % chunk_size != 0:
|
@@ -2,4 +2,4 @@ from .get_function_table_for_array_and_tensor import get_function_table_for_arra
|
|
2
2
|
from .convert_dtype import convert_dtype
|
3
3
|
from .get_crop_by_box import get_crop_by_box
|
4
4
|
from .set_crop_by_box import set_crop_by_box
|
5
|
-
from .
|
5
|
+
from .split_integer_most_evenly import split_integer_most_evenly
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import numpy as np
|
2
2
|
|
3
3
|
|
4
|
-
def
|
4
|
+
def split_integer_most_evenly(x, group_nums):
|
5
5
|
assert isinstance(x, (int, np.integer,)) and x >= 0 and group_nums > 0
|
6
6
|
|
7
7
|
res = np.ones(group_nums, dtype=int) * (x // group_nums)
|
@@ -10,4 +10,4 @@ def spilt_integer_most_evenly(x, group_nums):
|
|
10
10
|
|
11
11
|
|
12
12
|
if __name__ == '__main__':
|
13
|
-
print(
|
13
|
+
print(split_integer_most_evenly(x=100, group_nums=7))
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
|
4
|
+
class DEFAULT_RNG:
|
5
|
+
pass
|
6
|
+
|
7
|
+
|
8
|
+
for name in np.random.__all__:
|
9
|
+
setattr(DEFAULT_RNG, name, getattr(np.random, name))
|
10
|
+
|
11
|
+
func_map_s = {
|
12
|
+
'rand': lambda rng, *arg, **kwargs: rng.random(size=arg, **kwargs),
|
13
|
+
'randint': 'integers',
|
14
|
+
'randn': lambda rng, *arg, **kwargs: rng.normal(size=arg, **kwargs),
|
15
|
+
'random_integers': 'integers',
|
16
|
+
'random_sample': 'random',
|
17
|
+
'ranf': 'random'
|
18
|
+
}
|
19
|
+
|
20
|
+
|
21
|
+
class My_RNG:
|
22
|
+
def __init__(self, rng):
|
23
|
+
self._rng = rng
|
24
|
+
|
25
|
+
for name in np.random.__all__:
|
26
|
+
setattr(DEFAULT_RNG, name, getattr(np.random, name))
|
27
|
+
|
28
|
+
# self.key
|
29
|
+
def __getattr__(self, key):
|
30
|
+
if "_rng" not in self.__dict__:
|
31
|
+
# _rng 未被设置,未完成初始化。
|
32
|
+
return super().__getattr__(key)
|
33
|
+
else:
|
34
|
+
res = getattr(self._rng, key, None)
|
35
|
+
if res is None and key in func_map_s:
|
36
|
+
if callable(func_map_s[key]):
|
37
|
+
res = lambda *arg, **kwargs: func_map_s[key](self._rng, *arg, **kwargs)
|
38
|
+
else:
|
39
|
+
res = getattr(self._rng, func_map_s[key], None)
|
40
|
+
#
|
41
|
+
if res is None:
|
42
|
+
raise AttributeError(f"attribute '{key}' not found in {type(self)}")
|
43
|
+
else:
|
44
|
+
return res
|
45
|
+
|
46
|
+
|
47
|
+
def get_rng(seed=None, rng=None, **kwargs):
|
48
|
+
if seed is not None:
|
49
|
+
# 注意,随机生成器相较于 numpy.random 有部分属性缺失:
|
50
|
+
# ['get_state', 'rand', 'randint', 'randn', 'random_integers', 'random_sample', 'ranf', 'sample', 'seed',
|
51
|
+
# 'set_state', 'Generator', 'RandomState', 'SeedSequence', 'MT19937', 'Philox', 'PCG64', 'PCG64DXSM',
|
52
|
+
# 'SFC64', 'default_rng', 'BitGenerator']
|
53
|
+
rng = My_RNG(rng=np.random.default_rng(seed=seed))
|
54
|
+
if rng is not None:
|
55
|
+
return rng
|
56
|
+
else:
|
57
|
+
return DEFAULT_RNG
|
58
|
+
|
59
|
+
|
60
|
+
if __name__ == '__main__':
|
61
|
+
a = get_rng(seed=2)
|
62
|
+
|
63
|
+
# 尝试访问随机生成器中缺失的部分方法
|
64
|
+
print(a.randn(2, 3))
|
@@ -0,0 +1,70 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: kevin-toolbox-dev
|
3
|
+
Version: 1.3.3
|
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.3 (2024-04-01)【bug fix】【new feature】
|
50
|
+
- math.utils
|
51
|
+
- 【bug fix】更正拼写错误,将原有的 spilt_integer_most_evenly() 中的 "spilt" 改正为 "split",新的函数名为 split_integer_most_evenly
|
52
|
+
|
53
|
+
- patches.for_numpy.random
|
54
|
+
- 【bug fix】modify get_rng(),改进以避免遇到 rng 中不存在的函数时报错。
|
55
|
+
|
56
|
+
- data_flow.file
|
57
|
+
- json_
|
58
|
+
- 【new feature】将 escape_tuple() 改成 escape_tuple_and_set(),新增对 set 进行处理。
|
59
|
+
- 【new feature】将 unescape_tuple() 改成 unescape_tuple_and_set()。
|
60
|
+
|
61
|
+
- core.reader
|
62
|
+
- 【new feature】为 File_Iterative_Reader 新增了 file_obj 参数,支持直接输入文件对象。
|
63
|
+
|
64
|
+
- kevin_notation
|
65
|
+
- 【new feature】根据 File_Iterative_Reader 的修改,为 Kevin_Notation_Reader 和 read() 对应增加 file_obj 参数,以支持直接输入文件对象。
|
66
|
+
- 补充了对应的测试用例。
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
@@ -81,10 +81,10 @@ kevin_toolbox/data_flow/file/json_/converter/__init__.py
|
|
81
81
|
kevin_toolbox/data_flow/file/json_/converter/convert_dict_key_to_number.py
|
82
82
|
kevin_toolbox/data_flow/file/json_/converter/convert_ndarray_to_list.py
|
83
83
|
kevin_toolbox/data_flow/file/json_/converter/escape_non_str_dict_key.py
|
84
|
-
kevin_toolbox/data_flow/file/json_/converter/
|
84
|
+
kevin_toolbox/data_flow/file/json_/converter/escape_tuple_and_set.py
|
85
85
|
kevin_toolbox/data_flow/file/json_/converter/integrate.py
|
86
86
|
kevin_toolbox/data_flow/file/json_/converter/unescape_non_str_dict_key.py
|
87
|
-
kevin_toolbox/data_flow/file/json_/converter/
|
87
|
+
kevin_toolbox/data_flow/file/json_/converter/unescape_tuple_and_set.py
|
88
88
|
kevin_toolbox/data_flow/file/kevin_notation/__init__.py
|
89
89
|
kevin_toolbox/data_flow/file/kevin_notation/converter.py
|
90
90
|
kevin_toolbox/data_flow/file/kevin_notation/kevin_notation_reader.py
|
@@ -217,7 +217,7 @@ kevin_toolbox/math/utils/convert_dtype.py
|
|
217
217
|
kevin_toolbox/math/utils/get_crop_by_box.py
|
218
218
|
kevin_toolbox/math/utils/get_function_table_for_array_and_tensor.py
|
219
219
|
kevin_toolbox/math/utils/set_crop_by_box.py
|
220
|
-
kevin_toolbox/math/utils/
|
220
|
+
kevin_toolbox/math/utils/split_integer_most_evenly.py
|
221
221
|
kevin_toolbox/nested_dict_list/__init__.py
|
222
222
|
kevin_toolbox/nested_dict_list/copy_.py
|
223
223
|
kevin_toolbox/nested_dict_list/count_leaf_node_nums.py
|