v0.2.9 (April 10, 2012)
-----------------------
- General
  - improvement: rtorrent-python now creates a new http connection with every 
    Multicall instance, this was to fix issues caused by calls being made 
    simultaneously using the same RTorrent instance
    
  - fixed: an issue which prevented rtorrent.RTorrent rpc methods from
    being built (bug introduced in v0.2.8) 
  
- rtorrent.RTorrent
  - removed: all instances of RTorrent.download_list
    (replaced with [t.info_hash for t in RTorrent.torrents])
  
v0.2.8 (April 6, 2012)
----------------------
- General
  - Previously, instance methods for RTorrent and it's child classes weren't
    created if the version of rTorrent being connected to didn't support them.
    Now, all instance methods calls will be created, but ones that aren't
    supported by the connected rTorrent client will throw a MethodError when called.
    
    This also goes for methods being added to a Multicall instance via Multicall.add()

- rtorrent.RTorrent
  - get_api_version()
  - get_system_time()
    
- rtorrent.torrent.Torrent
  - added: announce()
  - added: accept_seeders()
  - added: is_accepting_seeders()
  - added: get_chunks_seen()
  - added: is_partially_done()
  - added: is_not_partially_done()
  - added: get_time_started()
  - added: get_num_chunks_wanted()
  - renamed: get_chunks_hashed() to get_num_chunks_hashed()
    
- rtorrent.tracker.Tracker
  - added: get_activity_time_last()
  - added: get_activity_time_next()
  - added: get_failed_time_last()
  - added: get_failed_time_next()
  - added: get_success_time_last()
  - added: get_success_time_next()
  - added: can_scrape()
  - added: get_failed_counter()
  - added: get_scrape_counter()
  - added: get_success_counter()
  - added: is_usable()
  - added: is_busy()
  - added: is_extra_tracker()
  - added: get_latest_sum_peers()
  - added: get_latest_new_peers()
  
- rtorrent.file.File
  - added: update()
    
- rtorrent.rpc.Method
  - added support for aliases so there can be some backwards 
    compatibility if methods are renamed
      
- rtorrent.rpc.Multicall
  - Multicall now sets the results of the call to the instance object given (Issue #7)
  - Because Multicall.call() now assigns the result of a method call to the
    calling, Multicall now needs the calling object as an input instead of 
    just the instance of RTorrent
    
    
v0.2.7 (March 1, 2012)
----------------------
- fixed: RTorrent instances are no longer created if the connection to the XMLRPC server fails

- API CHANGES
  - rtorrent.Torrent
    - added: Torrent.check_hash()


v0.2.6 (February 11, 2012)
--------------------------
- fixed: Torrent.get_ratio() wasn't converting to float properly
- added: documentation

- API CHANGES
  - rtorrent.Torrent
    - added: Torrent.is_started()
    - added: Torrent.is_paused()
    - added: Torrent.is_hash_checking_queued()

v0.2.5 (February 05, 2012)
--------------------------
- added: support for caching trackers/files/peers after calling get_torrents() (Issue #6)

- API CHANGES
  - rtorrent.Torrent
    - added: Torrent.erase()
    - added: Torrent.close()
    - changed: ratio is now converted to a float (Issue #5)
  - rtorrent.rpc.Method
    - added: post_process_func - specify a custom post processing method (Issue #4)
             (look for get_ratio Method in rtorrent.torrent for an example)
    

v0.2.4 (January 01, 2012)
-------------------------
- fixed: critical bug that caused any "set" function to throw an AssertionError
- fixed: critical bug in Torrent.start() and Torrent.stop()

v0.2.3 (December 31, 2011)
--------------------------
- added: min_version argument in rtorrent.rpc.Method, this will ensure
         the method will only be available when connected to an rTorrent
         client that can actually support it.

- API CHANGES
  - General
    - RTorrent/Peer/Tracker/File/Torrent/Multicall now requires the actual 
      instance of RTorrent as and input instead of the XMLRPC 
      connection for that instance
    
    - instance methods that communicate with rTorrent will raise
      an exception if the said method is not supported by the version of
      rTorrent you're connected to:
      - will raise rtorrent.err.RTorrentVersionError if the method is newer
        than the rTorrent client
      - will raise MethodError if method isn't listed in RTorrent._rpc_methods
      
    - Methods for RTorrent/Peer/Torrent/etc instances will now be created
      dynamically based on the client version of rTorrent that it's connected
      to (as opposed to the old way, which deleted the original Method instance,
      and therefore was inaccessible to any future connection to rTorrent, even if 
      the rTorrent client supported said method. This will ensure that methods 
      aren't available if the client doesn't support it). You can use hasattr() 
      in order to avoid AttributeError being raised.
      
  - rtorrent.RTorrent
    - renamed: get_commands to get_rpc_methods

  - rtorrent.rpc.Method
    - added: is_available(). This function will check if the Method instance is 
             supported by the instance of RTorrent specified
    - renamed: class_name to _class
    - added: class_name, which is now just the name of the class, (_class.__name__)
  
  - rtorrent.peer.Peer
    - renamed: banned to is_banned; added support for boolean
    - renamed: client_version to get_client_version
  
  - rtorrent.torrent.Torrent
    - renamed: incomplete to is_incomplete; added support for boolean

v0.2.2 (November 12, 2011)
--------------------------
- TorrentParser now works with Python2 (Issue #2)
- Fixed a bug in which if dict keys within the torrent had spaces, those spaces would not be converted
  to underscores when parsing the torrent, making the instance variables inaccessible (TorrentParser)
- Fixed an issue in which creating a File instance would fail (Issue #3)

- API CHANGES
  - RTorrent
    - renamed: get_download_rate to get_down_limit
    - renamed: get_upload_rate to get_up_limit
    - renamed: set_download_limit to set_down_limit
    - renamed: set_upload_limit to set_up_limit

v0.2.1 (October 18, 2011)
-------------------------
- Added: short delay before verifying if torrent was loaded to give rTorrent a chance to actually load it
- Fixed: a bug that caused load_torrent() to not see that the torrent was added successfully (Issue #1)

v0.2.0 (October 07, 2011)
-------------------------
- Added: support for Peer rpc methods
- Added: update methods for Peer, Tracker, Torrent and File classes
- Added: int to boolean type casting on return values (only occurs if the Method's boolean flag is True)
- Added: poll method for RTorrent class
- Added: Multicall support (see rtorrent.rpc.Multicall)
- Added: minimum rTorrent version check

- Improvement: Completely rewrote how RPC methods are used

- Removed: list_to_dict function in rtorrent.common (no longer needed)

v0.1.0 (October 01, 2011)
-------------------------
- Intial release
