To make the code more Python 3 compatible, I've made a few changes to how we handle keys() or iterkeys() calls on dictionaries. All functionality should remain the same.
* Remove the use of .keys() or .iterkeys() when iterating through a dictionary.
* Remove the use of .keys() when checking if key exists in dictionary.
* Replace dict.keys() with list(dict) to obtain a list of dictionary keys. In Python 3 dict.keys() returns a dict_keys object, not a list.
* Use markup in gtkui to reduce font size of displayed units.
* Reduced statusbar item sizes using markup and <small> tag. Provides an
interim solution to #1326 and has reduced width from 930px to ~600px.
* Integer value for Progress bar value in Peers and Files Tabs.
* Remove trailing zeros for Pieces size in Details Tab.
* Change position of Share Ratio in Status Tab.
* Increase minimum width of column from 10px to 20px for listview.
* Use shortform units e.g. Columns, Title speed, Status tab, Status bar.
* Use less precision displaying values in columns.
* libtorrent >= 1.1 dropped support for GeoIP so this adds support
again using MaxMind GeoIP Legacy Python Extension API.
For reference it is known by the following package names:
* Maxmind: geoip-api-python
* Linux: python-geoip
* PyPi: GeoIP
* #2133 Add flags for port reuse and disable binding to system port.
* #2122 For random port, use single port and store it for reuse.
* #2343 Fix 'Invalid Arg' from listen_on, likely due to whitespace as interface value.
* Consolidate listen_on and outgoing_port into single '__set...' methods.
* Copy-pasting from web page can include extra space at end of string.
* Also make minor change to populate the magnet name with infohash
for nicer UI display.
* Ensure all file descriptors are closed. Using the with statement ensures
closure.
* The main problem was with thousands of unclosed file desciptors from
tracker_icons mkstemp.
* Use a prefix 'deluge_ticon.' to identify created tracker_icon tmp files.
When installed to the system, not using .app, error is raised on startup
as nsapp_open_file is ignoring Deluge-bin but not deluge or deluge-gtk for
potential 'filename' when connecting NSApplicationOpenFile.
Due to the nature of passing a command and args to cmd.exe and then
to a batch file in Windows any ampersands in execute args need to be
double-escaped so prefixing with tripe-caret (^^^&) is the fix for this.
* The main fix here is adding os.environ to the command call otherwise in some configurations
the extraction would fail. Was unable to reproduce locally but users confirm this fix works.
* Refactored the code to properly report errors if the extract command fails along with actual
command output.
* Bump version to 0.5.
* Testcases in test_torrent.py and test_torrentmanager.py creates
components and should therefore inherit from BaseTestCase.
* Cleanup in test_json_api.py