GET /api/v1/scannerdb/scan_reports/74/
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/92/",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/93/",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2596/",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2597/"
    ],
    "creation_date": "2018-03-09T13:01:19.306000Z",
    "id": 74,
    "last_update": "2020-12-30T16:37:27.463315Z",
    "locale": null,
    "moderated": true,
    "os": "linux",
    "scan_library": "pyinsane2 2.0.12-10-g7d43ae4",
    "scan_program": "ironscanner 1.1.0-7-g25f117c",
    "scan_source": "Flatbed",
    "scanner": "https://www.openpaper.work/api/v1/scannerdb/scanners/31/",
    "scanner_type": "flatbed",
    "sealed": true,
    "successful": true,
    "url": "https://www.openpaper.work/api/v1/scannerdb/scan_reports/74/",
    "user_url": "https://www.openpaper.work/scannerdb/report/74/",
    "data": {
        "scanner": {
            "nicename": "snapscan:libusb:001:009",
            "model": "Perfection 660",
            "devid": "snapscan:libusb:001:009",
            "options": {
                "custom-gamma": {
                    "initial_value": "0",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Use custom gamma table",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Determines whether a builtin or a custom gamma-table should be used.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "blue-gamma-table": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 65535, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Blue intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Gamma-correction table for the blue band.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4096"
                },
                "quality-cal": {
                    "initial_value": "1",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Quality calibration",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Do a quality white-calibration",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "analog-gamma-r": {
                    "initial_value": "117964",
                    "constraint": "(0, 262144, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Analog gamma red",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Analog gamma-correction for red",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "tl-x": {
                    "initial_value": "0",
                    "constraint": "(0, 14155776, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Top-left x",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Top-left x position of scan area.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "size": "4"
                },
                "tl-y": {
                    "initial_value": "0",
                    "constraint": "(0, 19464192, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Top-left y",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Top-left y position of scan area.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "size": "4"
                },
                "rgb-lpr": {
                    "initial_value": "4",
                    "constraint": "(1, 50, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Colour lines per read",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "green-gamma-table": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 65535, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Green intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Gamma-correction table for the green band.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4096"
                },
                "predef-window": {
                    "initial_value": "None",
                    "constraint": "['None', '6x4 (inch)', '8x10 (inch)', '8.5x11 (inch)']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Predefined settings",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Provides standard scanning areas for photographs, printed pages and the like.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "32"
                },
                "depth": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "[8]",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Word list (2)",
                    "title": "Bit depth",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Number of bits per sample, typical values are 1 for \"line-art\" and 8 for multibit scans.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Bit (2)",
                    "size": "4"
                },
                "analog-gamma-b": {
                    "initial_value": "117964",
                    "constraint": "(0, 262144, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Analog gamma blue",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Analog gamma-correction for blue",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "source": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "['Flatbed']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Scan source",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Selects the scan source (such as a document-feeder).",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "8"
                },
                "gs-lpr": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(1, 50, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Greyscale lines per read",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect, Inactive, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Number of scan lines to request in a SCSI read. Changing this parameter allows you to tune the speed at which data is read from the scanner during scans. If this is set too low, the scanner will have to stop periodically in the middle of a scan; if it's set too high, X-based frontends may stop responding to X events and your system could bog down.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "mode": {
                    "initial_value": "Color",
                    "constraint": "['Color', 'Halftone', 'Gray', 'Lineart']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Scan mode",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Selects the scan mode (e.g., lineart, monochrome, or color).",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "32"
                },
                "Frame": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(1, 6, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Frame to be scanned",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Frame number of media holder that should be scanned.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "halftoning": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Halftoning",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Selects whether the acquired image should be halftoned (dithered).",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "br-x": {
                    "initial_value": "14155776",
                    "constraint": "(0, 14155776, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Bottom-right x",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Bottom-right x position of scan area.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "size": "4"
                },
                "negative": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Negative",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Swap black and white",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "Focus-mode": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "['Auto', 'Manual']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Auto or manual focus",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Use manual or automatic selection of focus point.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "16"
                },
                "halftone-pattern": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "['DispersedDot8x8', 'DispersedDot16x16']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Halftone pattern",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Defines the halftoning (dithering) pattern for scanning halftoned images.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "32"
                },
                "br-y": {
                    "initial_value": "19464192",
                    "constraint": "(0, 19464192, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Bottom-right y",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Bottom-right y position of scan area.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "size": "4"
                },
                "preview-mode": {
                    "initial_value": "Auto",
                    "constraint": "['Auto', 'Color', 'Halftone', 'Gray', 'Lineart']",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)",
                    "title": "Preview mode",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect, Advanced,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "desc": "Select the mode for previews. Greyscale previews usually give the best combination of speed and detail.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "32"
                },
                "gamma-table": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 65535, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Image intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Gamma-correction table.  In color mode this option equally affects the red, green, and blue channels simultaneously (i.e., it is an intensity gamma table).",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4096"
                },
                "red-gamma-table": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 65535, 1)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Red intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Gamma-correction table for the red band.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4096"
                },
                "resolution": {
                    "initial_value": "300",
                    "constraint": "[50, 75, 100, 150, 200, 300, 450, 600]",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Word list (2)",
                    "title": "Scan resolution",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Sets the resolution of the scanned image.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Dpi (4)",
                    "size": "4"
                },
                "analog-gamma": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 262144, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Analog gamma correction",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Analog gamma-correction",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "brightness": {
                    "initial_value": "0",
                    "constraint": "(-26214400, 26214400, 65536)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Brightness",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Controls the brightness of the acquired image.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Percent (5)",
                    "size": "4"
                },
                "threshold": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 6553600, 65536)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Threshold",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Select minimum-brightness to get a white point",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Percent (5)",
                    "size": "4"
                },
                "contrast": {
                    "initial_value": "0",
                    "constraint": "(-6553600, 26214400, 65536)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Contrast",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Controls the contrast of the acquired image.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Percent (5)",
                    "size": "4"
                },
                "high-quality": {
                    "initial_value": "0",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Quality scan",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Highest quality but lower speed",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "analog-gamma-bind": {
                    "initial_value": "0",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Bind analog gamma",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "In RGB-mode use same values for each color",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "analog-gamma-g": {
                    "initial_value": "117964",
                    "constraint": "(0, 262144, 0)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Analog gamma green",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "desc": "Analog gamma-correction for green",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "preview": {
                    "initial_value": "0",
                    "constraint": "None",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)",
                    "title": "Preview",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "desc": "Request a preview-quality scan.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                },
                "Focus-point": {
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "constraint": "(0, 768, 6)",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)",
                    "title": "Focus point",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "desc": "Focus point for scanning.",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "size": "4"
                }
            },
            "type": "flatbed",
            "fullname": "EPSON Perfection 660 (snapscan:libusb:001:009)",
            "vendor": "EPSON"
        },
        "scantest": {
            "successful": 1,
            "config": {
                "source": "Flatbed",
                "mode": "Color",
                "resolution": 150
            }
        },
        "user": {
            "name": "Jerome",
            "comment": ""
        },
        "system": {
            "sys_arch": "['64bit', 'ELF']",
            "sys_type": "posix",
            "sys_release": "4.9.0-6-amd64",
            "sys_swap": 15999168512,
            "sys_mem": 8328761344,
            "sys_proc": "",
            "versions": {
                "test_program": "ironscanner 1.1.0-7-g25f117c",
                "pillow": "5.0.0",
                "scan_library": "pyinsane2 2.0.12-10-g7d43ae4"
            },
            "sys_python": "3.5.3 (default, Jan 19 2017, 14:11:04) \n[GCC 6.3.0 20170118]",
            "sys_platform_short": "linux",
            "sys_cpu_freq": 2900,
            "sys_os_uname": "['Linux', 'chambre-verte', '4.9.0-6-amd64', '#1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02)', 'x86_64']",
            "sys_system": "Linux",
            "sys_machine": "x86_64",
            "sys_nb_cpus": 4,
            "sys_platform_uname": "['Linux', 'chambre-verte', '4.9.0-6-amd64', '#1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02)', 'x86_64', '']",
            "sys_platform_detailed": "Linux-4.9.0-6-amd64-x86_64-with-debian-9.3"
        },
        "software": {
            "scan_library": "pyinsane2 2.0.12-10-g7d43ae4",
            "test_program": "ironscanner 1.1.0-7-g25f117c",
            "operating_system": "linux"
        }
    }
}