From 62db98ca0908f62ce80bd7d6a272c00d6d000e23 Mon Sep 17 00:00:00 2001 From: arvidn Date: Mon, 23 Jan 2017 20:33:52 -0500 Subject: [PATCH] add missing min_memory_usage() and high_performance_seed() settings presets to python --- ChangeLog | 1 + bindings/python/src/session.cpp | 60 +++++++++++++++++++++------------ bindings/python/test.py | 14 ++++++++ 3 files changed, 53 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index a0ee4bf20..b6bb4054f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,4 @@ + * add missing min_memory_usage() and high_performance_seed() settings presets to python * fix stat cache issue that sometimes would produce incorrect resume data * storage optimization to peer classes * fix torrent name in alerts of builds with deprecated functions diff --git a/bindings/python/src/session.cpp b/bindings/python/src/session.cpp index 3e51ab0c7..4e4aff1df 100644 --- a/bindings/python/src/session.cpp +++ b/bindings/python/src/session.cpp @@ -140,6 +140,29 @@ namespace } } + dict make_dict(lt::settings_pack const& sett) + { + dict ret; + for (int i = settings_pack::string_type_base; + i < settings_pack::max_string_setting_internal; ++i) + { + ret[name_for_setting(i)] = sett.get_str(i); + } + + for (int i = settings_pack::int_type_base; + i < settings_pack::max_int_setting_internal; ++i) + { + ret[name_for_setting(i)] = sett.get_int(i); + } + + for (int i = settings_pack::bool_type_base; + i < settings_pack::max_bool_setting_internal; ++i) + { + ret[name_for_setting(i)] = sett.get_bool(i); + } + return ret; + } + boost::shared_ptr make_session(boost::python::dict sett, int flags) { settings_pack p; @@ -181,25 +204,21 @@ namespace allow_threading_guard guard; sett = ses.get_settings(); } - dict ret; - for (int i = settings_pack::string_type_base; - i < settings_pack::max_string_setting_internal; ++i) - { - ret[name_for_setting(i)] = sett.get_str(i); - } + return make_dict(sett); + } - for (int i = settings_pack::int_type_base; - i < settings_pack::max_int_setting_internal; ++i) - { - ret[name_for_setting(i)] = sett.get_int(i); - } + dict min_memory_usage_wrapper() + { + settings_pack ret; + min_memory_usage(ret); + return make_dict(ret); + } - for (int i = settings_pack::bool_type_base; - i < settings_pack::max_bool_setting_internal; ++i) - { - ret[name_for_setting(i)] = sett.get_bool(i); - } - return ret; + dict high_performance_seed_wrapper() + { + settings_pack ret; + high_performance_seed(ret); + return make_dict(ret); } #ifndef BOOST_NO_EXCEPTIONS @@ -962,11 +981,8 @@ void bind_session() scope().attr("create_metadata_plugin") = "metadata_transfer"; #endif - typedef void (*mem_preset2)(settings_pack& s); - typedef void (*perf_preset2)(settings_pack& s); - - def("high_performance_seed", (perf_preset2)high_performance_seed); - def("min_memory_usage", (mem_preset2)min_memory_usage); + def("high_performance_seed", high_performance_seed_wrapper); + def("min_memory_usage", min_memory_usage_wrapper); class_("stats_metric") .def_readonly("name", &stats_metric::name) diff --git a/bindings/python/test.py b/bindings/python/test.py index 0dce7dfcd..ab76e3c9a 100644 --- a/bindings/python/test.py +++ b/bindings/python/test.py @@ -252,6 +252,20 @@ class test_session(unittest.TestCase): self.assertEqual(s.get_settings()['num_want'], 66) self.assertEqual(s.get_settings()['user_agent'], 'test123') + def test_min_memory_preset(self): + min_mem = lt.min_memory_usage() + print(min_mem) + + self.assertTrue('connection_speed' in min_mem) + self.assertTrue('file_pool_size' in min_mem) + + def test_seed_mode_preset(self): + seed_mode = lt.high_performance_seed() + print(seed_mode) + + self.assertTrue('alert_queue_size' in seed_mode) + self.assertTrue('connection_speed' in seed_mode) + self.assertTrue('file_pool_size' in seed_mode) if __name__ == '__main__': print(lt.__version__)