Skip to content

wanadev/scanline-python-wrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scanline Python Wrapper

Github Discord PYPI Version Build Status Black License

Scanline Python Wrapper is a wrapper library for the scanline CLI tool.

Scanline is a CLI tool to scan documents on macOS through Apple's Image Capture Core API.

Install

You should install the scanline tool first. Jut follow instructions from its README:

Then install scanline-python-wrapper from PyPI:

pip install scanline-python-wrapper

Usage

List scanners:

>>> import scanline_wrapper
>>> scanline_wrapper.list_scanners()
['HP Color LaserJet MFP M281fdw (035F4A)', 'My other scanner']

Scan a document:

>>> import scanline_wrapper
>>> scanline_wrapper.scan_flatbed("./out.tiff")

Scan a document (more options):

>>> import scanline_wrapper
>>> scanline_wrapper.scan_flatbed(
>>>     "./out.jpg",
>>>     scanner="HP Color LaserJet MFP M281fdw (035F4A)",
>>>     page_size=scanline_wrapper.PageSize.LETTER,        # A4, LEGAL or LETTER
>>>     file_format=scanline_wrapper.FileFormat.JPEG,      # AUTO, PDF, TIFF or JPEG
>>>     color=scanline_wrapper.Color.COLOR,                # COLOR or MONOCHROME
>>>     resolution=150,                                    # DPI
>>> )

Complete documentation:

Development

To run development commands, you must install Nox first:

pip install nox

Lint

To lint the code, run the following command:

nox -s lint

To fix codding style, run:

nox -s black_fix

Run tests

To run the tests, use:

nox -s test

You can use following commands to run the tests only on a certain Python version (the corresponding Python interpreter must be installed on your machine):

nox -s test-3.9
nox -s test-3.10
nox -s test-3.11
nox -s test-3.12
nox -s test-3.13

Build the documentation

To build the Sphinx documentation, run:

nox -s gendoc

License

Changelog

  • [NEXT] (changes on master, but not released yet):
    • misc: Added Python 3.13 support (@flozz)
    • misc!: Removed Python 3.8 support (@flozz)
  • v1.0.0:
    • First release
    • feat: List available scanners
    • feat: Scan a document using a flatbed scanner