2018-02-22 : 2.0.11:
- Add pyinsane2.__version__
- Sane: Normalize behavior between single and multi scan: Single scan must raise a StopIteration
  after the first EOFError
- Sane/daemon: remove trace that reduced badly the performances
- Build: Add Makefile (if working directly on the Git version, please use now
  'make install' instead of 'python3 ./setup.py install')

2017-07-11 : 2.0.10:
- Now works with 'setup.py develop' (thanks to Matthieu Coudron)
- WIA: Some drivers (Lexmark for instance) returns WIA_ERROR_PAPER_EMPTY when
  calling transfer->Download() instead of returning a shorted image (like HP)
- MacOSX + Sane: disable dedicated process workaround (doesn't work)
- WIA: Minor optimisation (Use collections.deque() instead of list.pop())
- Sane/exit(): Exit gracefully

2016-12-06 : 2.0.9:
- Sane: Add workaround for scanners Samsung M288x: Option 'source' is actually
  called 'doc-source'

2016-12-04 : 2.0.8:
- WIA: Set various options to default values to avoid problems when scanning
- WIA: Fix ADF support: clearly tell the driver we intend to scan pages one
  by one (required for support of Brother MFC-7360N)
- WIA: Workaround: Prioritize source options over scanner options (required
  for support of Brother MFC-7360N)
- WIA: Fix behavior of PyinsaneImageStream::Write() (required for support of
  Brother MFC-7360N)
- Sane/Add workaround for Lexmark MFP: the option "resolution" is actually
  called "scan-resolution"

2016-11-22 : v2.0.7:
- set_scanner_opt(): Fix the list of exceptions to catch when actually setting the option
- Windows/WIA: Fix: If scanning only one page, at the end of page, don't request the next page
- Windows/WIA: Make setting options more resilient to crappy drivers
- Windows/WIA: Add __str__() on most objects (useful for diagnostic)

2016-11-19 : v2.0.6:
- Windows/WIA: Fix ADF support
- Windows/WIA: Fix support of some flatbed scanners

2016-11-18 : v2.0.5:
- Windows/WIA: Also look for network scanners

2016-11-18 : v2.0.4:
- Released not done correctly. No changes with 2.0.3

2016-11-10 : v2.0.3:
- Windows/WIA: Fix build
- set_scanner_opt(): Fix exception raised when trying to set an option that is
  not active

2016-09-22 : v2.0.1 --> v2.0.2:
- Add MANIFEST.in (.cpp and .h files were not included in package ...)

2016-09-22 : v2.0.0 --> v2.0.1:
- pyinsane2.set_scanner_opt(): Check the option is active before trying
  setting it
- Change slightly the output str(scanner_device) (remove useless "Scanner: ")

2016-09-20 : v1.4.0 --> v2.0.0
- API has been redesigned so it can handle backends other than libsane (rename
  SaneException into PyinsaneException, etc)
- Add support for Windows Image Acquisition API (v2)
- pyinsane2.init() + pyinsane2.exit() added
- pyinsane2.sane.abstract_th removed

2016-07-27 : v1.3.8 --> 1.4.0
- Add a workaround for Sane driver crashes and memory corruptions ('abstract_proc')
- Python 3 support: Constraints must be str() objects, not bytes()
- OS X support
- Rawapi: Fix: When Sane is not available, 'import pyinsane.rawapi' should actually work, but pyinsane.rawapi.is_sane_available() should return False
- RawApi: Fix mistake preventing authentication
- Methods '__del__' removed on Pyinsane's objects

2014-08-10 : v1.3.7 --> v1.3.8
- Fix scan from feeder (multiscan)

2014-07-09 : v1.3.6 --> v1.3.7
- Fix: On some scanner, the option 'source' is not active and shouldn't be
  used (prevented scans)

2014-05-01 : v1.3.5 --> v1.3.6
- Keep the behavior of scanner.options[].value always consistent: if an option is not active, we should always raise an exception
- Fix Python 3 support
- Improve tests

2014-03-05 : v1.3.4 --> v1.3.5
- Fix Mode=LineArt support

2013-11-05 : v1.3.3 --> v1.3.4:
- Fix Python 3 support (again): fix imports

2013-10-12 : v1.3.2 --> v1.3.3:
- Abstract: Fix python 3 support

2013-09-25 : v1.3.1 --> v1.3.2:
- Fix ADF support:
  - Request the next page(s) correctly (the call to sane_start() was missing)
  - Make sure each new page raises an exception EOFError, even the last one
  - Fix image spliting

2013-09-22 : v1.3.0 --> v1.3.1:
- Add a workaround to prevent crash when multithreaded programs stop :
  never call sane_exit().

2013-09-08 : v1.2.2 --> v1.3.0:
- Changes made to the abstract API (previous functions are still available but
  deprecated)
- Add functions and info to get the scanned image as the scan goes

2013-08-31 : v1.2.1 --> v1.2.2:
- Abstract: Fix scanner options handling

2013-08-19 : v1.2.0 --> v1.2.1:
- Fix exception raising in abstract_th

2013-08-18 : v1.1.0 --> v1.2.0:
- Python 3.x support

2013-07-06 : v1.0.3 --> v1.1.0:
- API cleanup : make some classes of rawapi available directly from the
  abstract modules
- Fix feeder support on scanners where the source is called
  'Automatic Document Feeder' instead of 'ADF'

2013-06-30 : v1.0.2 --> v1.0.3:
- rawpi: SaneEnum: Add method __eq__ to make value comparisons easier
- list_all.py / scan.py : Take into account some scanner specificities

2013-05-19 : v1.0.1 --> v1.0.2:
- Switch from PIL to Pillow

2013-05-05 : v1.0.0 --> v1.0.1:
- Fix "Lineart" / "Binary" mode support
