voyageur@gentoo.org Bernard Cafarelli Python implementation of the Sane API (using ctypes) and abstration layer. The code is divided in 3 layers: * rawapi : Ctypes binding to the raw Sane API * abstract : An Object-Oriented layer that simplifies the use of the Sane API and try to avoid possible misuse of the Sane API. When scanning, it also takes care of returning a Pillow image. * abstract_th : The Sane API is not thread-safe and cannot be used in a multi-threaded environment easily. This layer solves this problem by using a fully dedicated thread. pyinsane2 openpaperwork/pyinsane