GET /api/v1/scannerdb/scan_reports/42/?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/32/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/33/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/34/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/781/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/782/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2538/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2539/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2540/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/2541/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/3202/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/3203/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/3204/?format=api",
        "https://www.openpaper.work/api/v1/scannerdb/scan_report_attachments/3205/?format=api"
    ],
    "creation_date": "2018-03-07T14:35:06.109000Z",
    "id": 42,
    "last_update": "2021-01-03T19:42:02.434390Z",
    "locale": null,
    "moderated": true,
    "os": "linux",
    "scan_library": "pyinsane2 2.0.12-10-g7d43ae4",
    "scan_program": "ironscanner 1.1.0-5-g1f64064",
    "scan_source": "Flatbed",
    "scanner": "https://www.openpaper.work/api/v1/scannerdb/scanners/11/?format=api",
    "scanner_type": "flatbed",
    "sealed": true,
    "successful": true,
    "url": "https://www.openpaper.work/api/v1/scannerdb/scan_reports/42/?format=api",
    "user_url": "https://www.openpaper.work/scannerdb/report/42/",
    "data": {
        "scantest": {
            "successful": 0,
            "config": {
                "mode": "Color",
                "resolution": 75,
                "source": "Flatbed"
            }
        },
        "system": {
            "sys_platform_uname": "['Linux', 'Astor', '4.15.5-1-ARCH', '#1 SMP PREEMPT Thu Feb 22 22:15:20 UTC 2018', 'x86_64', '']",
            "sys_platform_short": "linux",
            "sys_nb_cpus": 2,
            "sys_release": "4.15.5-1-ARCH",
            "sys_swap": 0,
            "sys_cpu_freq": 2400,
            "sys_platform_detailed": "Linux-4.15.5-1-ARCH-x86_64-with-arch",
            "sys_type": "posix",
            "versions": {
                "test_program": "ironscanner 1.1.0-5-g1f64064",
                "pillow": "5.0.0",
                "scan_library": "pyinsane2 2.0.12-10-g7d43ae4"
            },
            "sys_system": "Linux",
            "sys_proc": "",
            "sys_mem": 8183615488,
            "sys_os_uname": "['Linux', 'Astor', '4.15.5-1-ARCH', '#1 SMP PREEMPT Thu Feb 22 22:15:20 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_machine": "x86_64"
        },
        "scanner": {
            "type": "flatbed",
            "model": "LiDE 110",
            "options": {
                "brightness": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Brightness",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "(-100, 100, 1)",
                    "desc": "Controls the brightness of the acquired image.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "br-x": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Bottom-right x",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "initial_value": "14201651",
                    "size": "4",
                    "constraint": "(0, 14201651, 0)",
                    "desc": "Bottom-right x position of scan area.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "file": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "File button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Hard_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "File button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "ocr": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "OCR button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "None",
                    "desc": "OCR button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "gamma-table": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Image intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "1024",
                    "constraint": "(0, 65535, 0)",
                    "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).",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "green-gamma-table": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Green intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "1024",
                    "constraint": "(0, 65535, 0)",
                    "desc": "Gamma-correction table for the green band.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "custom-gamma": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Use custom gamma table",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Determines whether a builtin or a custom gamma-table should be used.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "need-calibration": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Need calibration",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "None",
                    "desc": "The scanner needs calibration for the current settings",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "calibration-file": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "title": "Calibration file",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "/home/vincent/.sane/canon-lide-110.cal",
                    "size": "4096",
                    "constraint": "None",
                    "desc": "Specify the calibration file to use",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "disable-interpolation": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Disable interpolation",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "When using high resolutions where the horizontal resolution is smaller than the vertical resolution this disables horizontal interpolation.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "swcrop": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Software crop",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Request backend to remove border from pages digitally",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "swdeskew": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Software deskew",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Request backend to rotate skewed pages digitally",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "swskip": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Software blank skip percentage",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Percent (5)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "(0, 6553600, 65536)",
                    "desc": "Request driver to discard pages with low numbers of dark pixels",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "resolution": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Scan resolution",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Dpi (4)",
                    "initial_value": "75",
                    "size": "4",
                    "constraint": "[4800, 2400, 1200, 600, 300, 150, 100, 75]",
                    "desc": "Sets the resolution of the scanned image.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Word list (2)"
                },
                "despeck": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Software despeckle diameter",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "(1, 9, 1)",
                    "desc": "Maximum diameter of lone dots to remove from scan",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "lamp-off-scan": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Lamp off during scan",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "The lamp will be turned off during scan. ",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "blue-gamma-table": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Blue intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "1024",
                    "constraint": "(0, 65535, 0)",
                    "desc": "Gamma-correction table for the blue band.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "copy": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Copy button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Hard_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Copy button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "br-y": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Bottom-right y",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "initial_value": "19660800",
                    "size": "4",
                    "constraint": "(0, 19660800, 0)",
                    "desc": "Bottom-right y position of scan area.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "page-loaded": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Page loaded",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Page loaded",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "disable-dynamic-lineart": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Disable dynamic lineart",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Disable use of a software adaptive algorithm to generate lineart relying instead on hardware lineart.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "lamp-off-time": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Lamp off time",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "15",
                    "size": "4",
                    "constraint": "(0, 60, 0)",
                    "desc": "The lamp will be turned off after the given time (in minutes). A value of 0 means, that the lamp won't be turned off.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "scan": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Scan button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Hard_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Scan button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "tl-x": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Top-left x",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "(0, 14201651, 0)",
                    "desc": "Top-left x position of scan area.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "depth": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Bit depth",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "8",
                    "size": "4",
                    "constraint": "[8, 16]",
                    "desc": "Number of bits per sample, typical values are 1 for \"line-art\" and 8 for multibit scans.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Word list (2)"
                },
                "power": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Power button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Power button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "contrast": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Contrast",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "(-100, 100, 1)",
                    "desc": "Controls the contrast of the acquired image.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "source": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "title": "Scan source",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "21",
                    "constraint": "['Flatbed', 'Transparency Adapter']",
                    "desc": "Selects the scan source (such as a document-feeder).",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)"
                },
                "preview": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Preview",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Request a preview-quality scan.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "threshold-curve": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Threshold curve",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "50",
                    "size": "4",
                    "constraint": "(0, 127, 1)",
                    "desc": "Dynamic threshold curve, from light to dark, normally 50-65",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "mode": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "title": "Scan mode",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "Gray",
                    "size": "8",
                    "constraint": "['Color', 'Gray', 'Lineart']",
                    "desc": "Selects the scan mode (e.g., lineart, monochrome, or color).",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)"
                },
                "email": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Email button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Hard_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Email button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "swdespeck": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Software despeck",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Request backend to remove lone dots digitally",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "swderotate": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Software derotate",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Request driver to detect and correct 90 degree image rotation",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "color-filter": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : String (3)",
                    "title": "Color filter",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "Green",
                    "size": "6",
                    "constraint": "['Red', 'Green', 'Blue']",
                    "desc": "When using gray or lineart this option selects the used color.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : String list (3)"
                },
                "extra": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Boolean (0)",
                    "title": "Extra button",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Inactive,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "4",
                    "constraint": "None",
                    "desc": "Extra button",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : None (0)"
                },
                "tl-y": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Top-left y",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Mm (3)",
                    "initial_value": "0",
                    "size": "4",
                    "constraint": "(0, 19660800, 0)",
                    "desc": "Top-left y position of scan area.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "threshold": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Fixed (2)",
                    "title": "Threshold",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : Percent (5)",
                    "initial_value": "3276800",
                    "size": "4",
                    "constraint": "(0, 6553600, 65536)",
                    "desc": "Select minimum-brightness to get a white point",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "expiration-time": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Calibration cache expiration time",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "60",
                    "size": "4",
                    "constraint": "(-1, 30000, 1)",
                    "desc": "Time (in minutes) before a cached calibration expires. A value of 0 means cache is not used. A negative value means cache never expires.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                },
                "red-gamma-table": {
                    "type": "<class 'pyinsane2.sane.rawapi.SaneValueType'> : Integer (1)",
                    "title": "Red intensity",
                    "capabilities": "<class 'pyinsane2.sane.rawapi.SaneCapabilities'> :[ Soft_select, Soft_detect, Inactive, Advanced,]",
                    "unit": "<class 'pyinsane2.sane.rawapi.SaneUnit'> : None (0)",
                    "initial_value": "(Exception: <class 'pyinsane2.sane.rawapi.SaneStatus'> : Data is invalid (4))",
                    "size": "1024",
                    "constraint": "(0, 65535, 0)",
                    "desc": "Gamma-correction table for the red band.",
                    "contrainttype": "<class 'pyinsane2.sane.rawapi.SaneConstraintType'> : Range (1)"
                }
            },
            "nicename": "genesys:libusb:003:002",
            "fullname": "Canon LiDE 110 (genesys:libusb:003:002)",
            "devid": "genesys:libusb:003:002",
            "vendor": "Canon"
        },
        "user": {
            "comment": "",
            "name": "Vincent Gay"
        },
        "software": {
            "scan_library": "pyinsane2 2.0.12-10-g7d43ae4",
            "test_program": "ironscanner 1.1.0-5-g1f64064",
            "operating_system": "linux"
        }
    }
}