Skip to content

sane.Option doesn't properly handle buttons named "scan" #71

@BonkaBonka

Description

@BonkaBonka

I have a couple of scanners (a Fujitsu SnapScan 1500 and a Canon CanoScan LiDE 210) that have front-panel buttons that can initiate scans. Unfortunately, the primary scan buttons are named "scan" and that collides with the bound method to ask the scanner to begin scanning.

>>> import sane
>>>
>>> sane.init()
(16777247, 1, 0, 31)
>>> sane.get_devices()
[('genesys:libusb:001:008', 'Canon', 'LiDE 210', 'flatbed scanner'), ('fujitsu:ScanSnap S1500:56050', 'FUJITSU', 'ScanSnap S1500', 'scanner')]
>>>
>>> scanner = sane.open('fujitsu:ScanSnap S1500:56050')
>>> scanner.opt['scan']

Name:      scan
Cur value: <bound method SaneDev.scan of <sane.SaneDev object at 0x7f8567e60f40>>
Index:     91
Title:     Scan button
Desc:      Scan button
Type:      TYPE_BOOL
Unit:      UNIT_NONE
Constr:    None
active:    yes
settable:  no

Modifying sane.py on line 307 to change the method name from scan to, say, doscan "fixes" the issue for me:

>>> scanner.opt['scan']

Name:      scan
Cur value: 0
Index:     91
Title:     Scan button
Desc:      Scan button
Type:      TYPE_BOOL
Unit:      UNIT_NONE
Constr:    None
active:    yes
settable:  no

I'm not sure what the proper way to fix this for real. :/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions