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