GET /api/v1/scannerdb/scan_reports/126/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "admin_comment": null,
    "attachments": [
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/178/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/179/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2672/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2673/?format=api"
    ],
    "creation_date": "2018-04-14T15:49:05.793000Z",
    "id": 126,
    "last_update": "2020-12-30T16:37:48.356445Z",
    "locale": null,
    "moderated": true,
    "os": "linux",
    "scan_library": "pyinsane2 2.0.12-21-g54764bf",
    "scan_program": "ironscanner 1.1.0-17-g3e34780",
    "scan_source": "Flatbed",
    "scanner": "https://www.openpaper.work/api/v1/scannerdb/scanners/73/?format=api",
    "scanner_type": "flatbed",
    "sealed": true,
    "successful": true,
    "url": "https://www.openpaper.work/api/v1/scannerdb/scan_reports/126/?format=api",
    "user_url": "https://www.openpaper.work/scannerdb/report/126/",
    "data": {
        "scantest": {
            "config": {
                "source": "Flatbed",
                "mode": "Color",
                "resolution": 150
            },
            "successful": 1
        },
        "user": {
            "name": "Yves Gablin",
            "comment": ""
        },
        "scanner": {
            "fullname": "Epson Perfection 1650 (epkowa:usb:003:004)",
            "vendor": "Epson",
            "model": "Perfection 1650",
            "nicename": "epkowa:usb:003:004",
            "type": "flatbed",
            "devid": "epkowa:usb:003:004",
            "options": {
                "mirror": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Mirror image",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Mirror the image."
                },
                "brightness": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Brightness",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(-3, 3, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Controls the brightness of the acquired image."
                },
                "threshold": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Threshold",
                    "size": "4",
                    "initial_value": "(Exception: Option 'threshold' is not active)",
                    "constraint": "(0, 255, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Select minimum-brightness to get a white point"
                },
                "cct-7": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift red to blue",
                    "size": "4",
                    "initial_value": "884",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to blue based on red level"
                },
                "source": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Scan source",
                    "size": "8",
                    "initial_value": "(Exception: Option 'source' is not active)",
                    "constraint": "['Flatbed']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the scan source (such as a document-feeder)."
                },
                "adf-mode": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "ADF Mode",
                    "size": "8",
                    "initial_value": "(Exception: Option 'adf-mode' is not active)",
                    "constraint": "['Simplex', 'Duplex']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the ADF mode (simplex/duplex)"
                },
                "color-correction": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Color correction",
                    "size": "20",
                    "initial_value": "CRT monitors",
                    "constraint": "['No Correction', 'User defined', 'Impact-dot printers', 'Thermal printers', 'Ink-jet printers', 'CRT monitors']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Sets the color correction table for the selected output device."
                },
                "preview": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Preview",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Request a preview-quality scan."
                },
                "y-resolution": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Dpi (4)",
                    "title": "Y-resolution",
                    "size": "4",
                    "initial_value": "300",
                    "constraint": "(50, 3200, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Sets the vertical resolution of the scanned image."
                },
                "halftoning": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Halftoning",
                    "size": "26",
                    "initial_value": "(Exception: Option 'halftoning' is not active)",
                    "constraint": "['None', 'Halftone A (Hard Tone)', 'Halftone B (Soft Tone)', 'Halftone C (Net Screen)', 'Dither A (4x4 Bayer)', 'Dither B (4x4 Spiral)', 'Dither C (4x4 Net Screen)', 'Dither D (8x4 Net Screen)', 'Text Enhanced Technology', 'Download pattern A', 'Download pattern B']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the halftone."
                },
                "tl-x": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "title": "Top-left x",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(0, 14149222, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Top-left x position of scan area."
                },
                "cct-4": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift red to green",
                    "size": "4",
                    "initial_value": "-5157",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to green based on red level"
                },
                "green-gamma-table": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Green intensity",
                    "size": "1024",
                    "initial_value": "(Exception: Option 'green-gamma-table' is not active)",
                    "constraint": "(0, 255, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Gamma-correction table for the green band."
                },
                "quick-format": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Quick format",
                    "size": "13",
                    "initial_value": "Maximum",
                    "constraint": "['Maximum', 'A4', 'A5 Landscape', 'A5 Portrait', 'B5', 'Letter', 'Executive', 'CD']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Select an area to scan based on well-known media sizes. (DEPRECATED)"
                },
                "focus-position": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Focus Position",
                    "size": "24",
                    "initial_value": "(Exception: Option 'focus-position' is not active)",
                    "constraint": "['Focus on glass', 'Focus 2.5mm above glass']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Sets the focus position to either the glass or 2.5mm above the glass"
                },
                "gamma-correction": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Gamma Correction",
                    "size": "25",
                    "initial_value": "Default",
                    "constraint": "['Default', 'User defined (Gamma=1.0)', 'User defined (Gamma=1.8)', 'High density printing', 'Low density printing', 'High contrast printing']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner"
                },
                "monitor-button": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Monitor Button",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Indicates whether a button on the scanner has been pressed."
                },
                "auto-eject": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Auto eject",
                    "size": "4",
                    "initial_value": "(Exception: Option 'auto-eject' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Eject document after scanning"
                },
                "polling-time": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Microsecond (6)",
                    "title": "Polling Time",
                    "size": "4",
                    "initial_value": "1000000",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Time between queries when waiting for device state changes."
                },
                "cct-1": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Red",
                    "size": "4",
                    "initial_value": "70778",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Controls red level"
                },
                "dropout": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Dropout",
                    "size": "6",
                    "initial_value": "(Exception: Option 'dropout' is not active)",
                    "constraint": "['None', 'Red', 'Green', 'Blue']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the dropout."
                },
                "cct-6": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift blue to green",
                    "size": "4",
                    "initial_value": "-386",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to green based on blue level"
                },
                "needs-polling": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Needs Polling",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Indicates whether the scanner needs to poll."
                },
                "x-resolution": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Dpi (4)",
                    "title": "X-resolution",
                    "size": "4",
                    "initial_value": "300",
                    "constraint": "(50, 3200, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Sets the horizontal resolution of the scanned image."
                },
                "blue-gamma-table": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Blue intensity",
                    "size": "1024",
                    "initial_value": "(Exception: Option 'blue-gamma-table' is not active)",
                    "constraint": "(0, 255, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Gamma-correction table for the blue band."
                },
                "preview-speed": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Speed",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": ""
                },
                "sharpness": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Sharpness",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(-2, 2, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": ""
                },
                "tl-y": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "title": "Top-left y",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(0, 19475988, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Top-left y position of scan area."
                },
                "detect-doc-size": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Auto-detect document size",
                    "size": "4",
                    "initial_value": "(Exception: Option 'detect-doc-size' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Activates document size auto-detection.  The scan area will be set to match the detected document size."
                },
                "bay": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Bay",
                    "size": "4",
                    "initial_value": "(Exception: Option 'bay' is not active)",
                    "constraint": "[' 1 ', ' 2 ', ' 3 ', ' 4 ', ' 5 ', ' 6 ']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Select bay to scan"
                },
                "br-y": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "title": "Bottom-right y",
                    "size": "4",
                    "initial_value": "19475988",
                    "constraint": "(0, 19475988, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Bottom-right y position of scan area."
                },
                "speed": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Scan speed",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Determines the speed at which the scan proceeds."
                },
                "cct-3": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift blue to red",
                    "size": "4",
                    "initial_value": "-1264",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to red based on blue level"
                },
                "brightness-method": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Brightness Method",
                    "size": "9",
                    "initial_value": "hardware",
                    "constraint": "['hardware', 'iscan', 'gimp']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects a method to change the brightness of the acquired image."
                },
                "resolution": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Dpi (4)",
                    "title": "Scan resolution",
                    "size": "4",
                    "initial_value": "300",
                    "constraint": "(50, 3200, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Sets the resolution of the scanned image."
                },
                "ext-sane-status": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Extended SANE Status",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(0, 2, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Ugly kludge to provide additional status message strings to a frontend."
                },
                "depth": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Bit depth",
                    "size": "4",
                    "initial_value": "8",
                    "constraint": "[8, 16]",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Word list (2)",
                    "desc": "Number of bits per sample, typical values are 1 for \"line-art\" and 8 for multibit scans."
                },
                "short-resolution": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Short resolution list",
                    "size": "4",
                    "initial_value": "(Exception: Option 'short-resolution' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Display short resolution list"
                },
                "auto-area-segmentation": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Auto area segmentation",
                    "size": "4",
                    "initial_value": "(Exception: Option 'auto-area-segmentation' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": ""
                },
                "cct-2": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift green to red",
                    "size": "4",
                    "initial_value": "-3978",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to red based on green level"
                },
                "film-type": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Film type",
                    "size": "14",
                    "initial_value": "(Exception: Option 'film-type' is not active)",
                    "constraint": "['Positive Film', 'Negative Film']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": ""
                },
                "red-gamma-table": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Red intensity",
                    "size": "1024",
                    "initial_value": "(Exception: Option 'red-gamma-table' is not active)",
                    "constraint": "(0, 255, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Gamma-correction table for the red band."
                },
                "adf-duplex-direction-matches": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "ADF Duplex Direction Matches",
                    "size": "4",
                    "initial_value": "(Exception: Option 'adf-duplex-direction-matches' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Indicates whether the device's ADF duplex mode, if available, scans in the same direction for the front and back."
                },
                "contrast": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Contrast",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "(-100, 100, 1)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Emulated,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Controls the contrast of the acquired image."
                },
                "mode": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Scan mode",
                    "size": "7",
                    "initial_value": "Color",
                    "constraint": "['Binary', 'Gray', 'Color']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Selects the scan mode (e.g., lineart, monochrome, or color)."
                },
                "wait-for-button": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Wait for Button",
                    "size": "4",
                    "initial_value": "0",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "After sending the scan command, wait until the button on the scanner is pressed to actually start the scan process."
                },
                "br-x": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "title": "Bottom-right x",
                    "size": "4",
                    "initial_value": "14149222",
                    "constraint": "(0, 14149222, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Bottom-right x position of scan area."
                },
                "zoom": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Zoom",
                    "size": "4",
                    "initial_value": "100",
                    "constraint": "(50, 200, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Defines the zoom factor the scanner will use"
                },
                "cct-9": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Blue",
                    "size": "4",
                    "initial_value": "86500",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Control blue level"
                },
                "double-feed-detection-sensitivity": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Double Feed Detection Sensitivity",
                    "size": "5",
                    "initial_value": "(Exception: Option 'double-feed-detection-sensitivity' is not active)",
                    "constraint": "['None', 'Low', 'High']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Sets the sensitivity with which multi-sheet page feeds are detected and reported as errors."
                },
                "adf-auto-scan": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "ADF Auto Scan",
                    "size": "4",
                    "initial_value": "(Exception: Option 'adf-auto-scan' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Skips per sheet device setup for faster throughput."
                },
                "scan-area": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Scan area",
                    "size": "13",
                    "initial_value": "Maximum",
                    "constraint": "['Maximum', 'A4', 'A5 Landscape', 'A5 Portrait', 'B5', 'Letter', 'Executive', 'CD']",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "desc": "Select an area to scan based on well-known media sizes."
                },
                "deskew": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Deskew",
                    "size": "4",
                    "initial_value": "(Exception: Option 'deskew' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Emulated, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Rotate image so it appears upright."
                },
                "scan-area-is-valid": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Scan Area Is Valid",
                    "size": "4",
                    "initial_value": "1",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Indicates whether the current scan area settings are valid."
                },
                "autocrop": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Trim image to paper size",
                    "size": "4",
                    "initial_value": "(Exception: Option 'autocrop' is not active)",
                    "constraint": "None",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Emulated, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "desc": "Determines empty margins in the scanned image and removes them.  This normally reduces the image to the size of the original document but may remove more."
                },
                "cct-8": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Shift green to blue",
                    "size": "4",
                    "initial_value": "-21849",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Adds to blue based on green level"
                },
                "cct-5": {
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "title": "Green",
                    "size": "4",
                    "initial_value": "71080",
                    "constraint": "(-131072, 131072, 0)",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "desc": "Controls green level"
                }
            }
        },
        "system": {
            "sys_nb_cpus": 4,
            "sys_proc": "",
            "sys_machine": "x86_64",
            "sys_mem": 7762313216,
            "sys_platform_detailed": "Linux-4.15.15-1-ARCH-x86_64-with-arch",
            "sys_swap": 2147479552,
            "versions": {
                "test_program": "ironscanner 1.1.0-17-g3e34780",
                "pillow": "5.1.0",
                "scan_library": "pyinsane2 2.0.12-21-g54764bf"
            },
            "sys_cpu_freq": 3400,
            "sys_release": "4.15.15-1-ARCH",
            "sys_platform_uname": "['Linux', 'sedentaire', '4.15.15-1-ARCH', '#1 SMP PREEMPT Sat Mar 31 23:59:25 UTC 2018', 'x86_64', '']",
            "sys_os_uname": "['Linux', 'sedentaire', '4.15.15-1-ARCH', '#1 SMP PREEMPT Sat Mar 31 23:59:25 UTC 2018', 'x86_64']",
            "sys_python": "3.5.3 (default, Jan 19 2017, 14:11:04) \n[GCC 6.3.0 20170118]",
            "sys_arch": "['64bit', 'ELF']",
            "sys_platform_short": "linux",
            "sys_type": "posix",
            "sys_system": "Linux"
        },
        "software": {
            "scan_library": "pyinsane2 2.0.12-21-g54764bf",
            "test_program": "ironscanner 1.1.0-17-g3e34780",
            "operating_system": "linux"
        }
    }
}