[{"id":30361,"web_url":"https://patchwork.libcamera.org/comment/30361/","msgid":"<5a2d7a07-dccb-4c89-8f7a-0e8515cbcfe6@ideasonboard.com>","date":"2024-07-05T14:51:12","subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Stefan\n\nOn 05/07/2024 15:41, Stefan Klug wrote:\n> Fix imports to match new structure in the files copied from Raspberry\n> Pi. Add missing imports in macbeth.py.\n\n\nShould numpy, scipy and sklearn be added to the new requirements.txt as part of this?\n\n> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>   utils/tuning/libtuning/ctt_awb.py |  4 +++-\n>   utils/tuning/libtuning/ctt_ccm.py | 12 +++++++-----\n>   utils/tuning/libtuning/macbeth.py |  5 +++++\n>   3 files changed, 15 insertions(+), 6 deletions(-)\n>\n> diff --git a/utils/tuning/libtuning/ctt_awb.py b/utils/tuning/libtuning/ctt_awb.py\n> index 5ba6f978a228..f3a1ce779e21 100644\n> --- a/utils/tuning/libtuning/ctt_awb.py\n> +++ b/utils/tuning/libtuning/ctt_awb.py\n> @@ -4,10 +4,12 @@\n>   #\n>   # camera tuning tool for AWB\n>   \n> -from ctt_image_load import *\n>   import matplotlib.pyplot as plt\n>   from bisect import bisect_left\n>   from scipy.optimize import fmin\n> +import numpy as np\n> +\n> +from .image import Image\n>   \n>   \n>   \"\"\"\n> diff --git a/utils/tuning/libtuning/ctt_ccm.py b/utils/tuning/libtuning/ctt_ccm.py\n> index 59753e332ee9..f37adaf45538 100644\n> --- a/utils/tuning/libtuning/ctt_ccm.py\n> +++ b/utils/tuning/libtuning/ctt_ccm.py\n> @@ -4,12 +4,14 @@\n>   #\n>   # camera tuning tool for CCM (colour correction matrix)\n>   \n> -from ctt_image_load import *\n> -from ctt_awb import get_alsc_patches\n> -import colors\n> -from scipy.optimize import minimize\n> -from ctt_visualise import visualise_macbeth_chart\n>   import numpy as np\n> +from scipy.optimize import minimize\n> +\n> +from . import ctt_colors as colors\n> +from .image import Image\n> +from .ctt_awb import get_alsc_patches\n> +from .utils import visualise_macbeth_chart\n> +\n>   \"\"\"\n>   takes 8-bit macbeth chart values, degammas and returns 16 bit\n>   \"\"\"\n> diff --git a/utils/tuning/libtuning/macbeth.py b/utils/tuning/libtuning/macbeth.py\n> index 81f3e87c9088..265a33d68378 100644\n> --- a/utils/tuning/libtuning/macbeth.py\n> +++ b/utils/tuning/libtuning/macbeth.py\n> @@ -1,6 +1,7 @@\n>   # SPDX-License-Identifier: BSD-2-Clause\n>   #\n>   # Copyright (C) 2019, Raspberry Pi Ltd\n> +# Copyright (C) 2024, Ideas on Board Oy\n>   #\n>   # Locate and extract Macbeth charts from images\n>   # (Copied from: ctt_macbeth_locator.py)\n> @@ -11,6 +12,10 @@ import cv2\n>   import os\n>   from pathlib import Path\n>   import numpy as np\n> +import warnings\n> +from sklearn import cluster as cluster\n> +\n> +from .ctt_ransac import get_square_verts, get_square_centres\n>   \n>   from libtuning.image import Image\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 07CF4BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Jul 2024 14:51:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0E86062E23;\n\tFri,  5 Jul 2024 16:51:17 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0BC5D62E22\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jul 2024 16:51:15 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3B9B84CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jul 2024 16:50:45 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Eo9DFarR\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1720191045;\n\tbh=YssSGFsmZbgH0b4XzH0Cg20cUoPZORj7V01S7cNEVok=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=Eo9DFarR4gKIIa1Ltbp3BfEK+YzV/BfOat6XxHfmsNA5Q+yyxhSNOoNvXcv0G4chy\n\txzfm9jNrWVoTVMGKDDInWR7+EynExbRybH4iAMAryN9CKy6eOLDFaDjAluWoDR7tgE\n\tie3u2yV8+tVYvY/rNJgwnHfvp4gjh/TKlYLC2iH0=","Message-ID":"<5a2d7a07-dccb-4c89-8f7a-0e8515cbcfe6@ideasonboard.com>","Date":"Fri, 5 Jul 2024 15:51:12 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","To":"libcamera-devel@lists.libcamera.org","References":"<20240705144209.418906-1-stefan.klug@ideasonboard.com>\n\t<20240705144209.418906-7-stefan.klug@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<20240705144209.418906-7-stefan.klug@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30362,"web_url":"https://patchwork.libcamera.org/comment/30362/","msgid":"<njmutweyl2ofqqjbggirw3j6zd4n5zzhttzqwzm6kqhbdbtnqv@jih2777wls3p>","date":"2024-07-05T15:19:32","subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"content":"Hi Dan,\n\nThanks for the review.\n\nOn Fri, Jul 05, 2024 at 03:51:12PM +0100, Dan Scally wrote:\n> Hi Stefan\n> \n> On 05/07/2024 15:41, Stefan Klug wrote:\n> > Fix imports to match new structure in the files copied from Raspberry\n> > Pi. Add missing imports in macbeth.py.\n> \n> \n> Should numpy, scipy and sklearn be added to the new requirements.txt as part of this?\n\nYou are absolutely right. That got lost somehow. I rechecked with a new venv and\nadded the following hunk to this commit:\n\ndiff --git a/utils/tuning/requirements.txt b/utils/tuning/requirements.txt\nindex d1dc589d0329..b287552452c7 100644\n--- a/utils/tuning/requirements.txt\n+++ b/utils/tuning/requirements.txt\n@@ -1,5 +1,8 @@\n+matplotlib\n numpy\n opencv-python\n py3exiv2\n pyyaml\n rawpy\n+scikit-learn\n+scipy\n\n\nBest regards,\nStefan\n\n> \n> > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n> > Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >   utils/tuning/libtuning/ctt_awb.py |  4 +++-\n> >   utils/tuning/libtuning/ctt_ccm.py | 12 +++++++-----\n> >   utils/tuning/libtuning/macbeth.py |  5 +++++\n> >   3 files changed, 15 insertions(+), 6 deletions(-)\n> > \n> > diff --git a/utils/tuning/libtuning/ctt_awb.py b/utils/tuning/libtuning/ctt_awb.py\n> > index 5ba6f978a228..f3a1ce779e21 100644\n> > --- a/utils/tuning/libtuning/ctt_awb.py\n> > +++ b/utils/tuning/libtuning/ctt_awb.py\n> > @@ -4,10 +4,12 @@\n> >   #\n> >   # camera tuning tool for AWB\n> > -from ctt_image_load import *\n> >   import matplotlib.pyplot as plt\n> >   from bisect import bisect_left\n> >   from scipy.optimize import fmin\n> > +import numpy as np\n> > +\n> > +from .image import Image\n> >   \"\"\"\n> > diff --git a/utils/tuning/libtuning/ctt_ccm.py b/utils/tuning/libtuning/ctt_ccm.py\n> > index 59753e332ee9..f37adaf45538 100644\n> > --- a/utils/tuning/libtuning/ctt_ccm.py\n> > +++ b/utils/tuning/libtuning/ctt_ccm.py\n> > @@ -4,12 +4,14 @@\n> >   #\n> >   # camera tuning tool for CCM (colour correction matrix)\n> > -from ctt_image_load import *\n> > -from ctt_awb import get_alsc_patches\n> > -import colors\n> > -from scipy.optimize import minimize\n> > -from ctt_visualise import visualise_macbeth_chart\n> >   import numpy as np\n> > +from scipy.optimize import minimize\n> > +\n> > +from . import ctt_colors as colors\n> > +from .image import Image\n> > +from .ctt_awb import get_alsc_patches\n> > +from .utils import visualise_macbeth_chart\n> > +\n> >   \"\"\"\n> >   takes 8-bit macbeth chart values, degammas and returns 16 bit\n> >   \"\"\"\n> > diff --git a/utils/tuning/libtuning/macbeth.py b/utils/tuning/libtuning/macbeth.py\n> > index 81f3e87c9088..265a33d68378 100644\n> > --- a/utils/tuning/libtuning/macbeth.py\n> > +++ b/utils/tuning/libtuning/macbeth.py\n> > @@ -1,6 +1,7 @@\n> >   # SPDX-License-Identifier: BSD-2-Clause\n> >   #\n> >   # Copyright (C) 2019, Raspberry Pi Ltd\n> > +# Copyright (C) 2024, Ideas on Board Oy\n> >   #\n> >   # Locate and extract Macbeth charts from images\n> >   # (Copied from: ctt_macbeth_locator.py)\n> > @@ -11,6 +12,10 @@ import cv2\n> >   import os\n> >   from pathlib import Path\n> >   import numpy as np\n> > +import warnings\n> > +from sklearn import cluster as cluster\n> > +\n> > +from .ctt_ransac import get_square_verts, get_square_centres\n> >   from libtuning.image import Image","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id DDCE6BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Jul 2024 15:19:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ACC8162E22;\n\tFri,  5 Jul 2024 17:19:37 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C25BD619BF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jul 2024 17:19:35 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:60b6:33a3:3a20:6030])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 10E09541;\n\tFri,  5 Jul 2024 17:19:06 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"S6w+lstS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1720192746;\n\tbh=NhV7wgp/8jos7U8laX1YaZYLXiugl8Of+wu5e29g+VY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=S6w+lstSi8447XWGJ3sn4geb+gvX/Ltd5iMIjxG4K9MHvPfsMYAXGyavMlnj698oq\n\tMbN7rGmoeQAnNu45pdfKVAXp0jemVUPNt4MDqruBMq2YegfCnbWgvrd5NUbPa1W1gH\n\tBOHGiNup9PL5RZOQEld1gsS7jH4JUNnM1Tt9vcpA=","Date":"Fri, 5 Jul 2024 17:19:32 +0200","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"Dan Scally <dan.scally@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","Message-ID":"<njmutweyl2ofqqjbggirw3j6zd4n5zzhttzqwzm6kqhbdbtnqv@jih2777wls3p>","References":"<20240705144209.418906-1-stefan.klug@ideasonboard.com>\n\t<20240705144209.418906-7-stefan.klug@ideasonboard.com>\n\t<5a2d7a07-dccb-4c89-8f7a-0e8515cbcfe6@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<5a2d7a07-dccb-4c89-8f7a-0e8515cbcfe6@ideasonboard.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":30363,"web_url":"https://patchwork.libcamera.org/comment/30363/","msgid":"<22f15b2d-133c-4412-baeb-1e6304b5b0d8@ideasonboard.com>","date":"2024-07-05T15:35:33","subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Stefan\n\nOn 05/07/2024 16:19, Stefan Klug wrote:\n> Hi Dan,\n>\n> Thanks for the review.\n>\n> On Fri, Jul 05, 2024 at 03:51:12PM +0100, Dan Scally wrote:\n>> Hi Stefan\n>>\n>> On 05/07/2024 15:41, Stefan Klug wrote:\n>>> Fix imports to match new structure in the files copied from Raspberry\n>>> Pi. Add missing imports in macbeth.py.\n>>\n>> Should numpy, scipy and sklearn be added to the new requirements.txt as part of this?\n> You are absolutely right. That got lost somehow. I rechecked with a new venv and\n> added the following hunk to this commit:\n>\n> diff --git a/utils/tuning/requirements.txt b/utils/tuning/requirements.txt\n> index d1dc589d0329..b287552452c7 100644\n> --- a/utils/tuning/requirements.txt\n> +++ b/utils/tuning/requirements.txt\n> @@ -1,5 +1,8 @@\n> +matplotlib\n>   numpy\nOops, missed that that was already there.\n>   opencv-python\n>   py3exiv2\n>   pyyaml\n>   rawpy\n> +scikit-learn\n> +scipy\n>\nGreat - with that: Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\n\nThanks\n\nDan\n\n> Best regards,\n> Stefan\n>\n>>> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n>>> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n>>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>> ---\n>>>    utils/tuning/libtuning/ctt_awb.py |  4 +++-\n>>>    utils/tuning/libtuning/ctt_ccm.py | 12 +++++++-----\n>>>    utils/tuning/libtuning/macbeth.py |  5 +++++\n>>>    3 files changed, 15 insertions(+), 6 deletions(-)\n>>>\n>>> diff --git a/utils/tuning/libtuning/ctt_awb.py b/utils/tuning/libtuning/ctt_awb.py\n>>> index 5ba6f978a228..f3a1ce779e21 100644\n>>> --- a/utils/tuning/libtuning/ctt_awb.py\n>>> +++ b/utils/tuning/libtuning/ctt_awb.py\n>>> @@ -4,10 +4,12 @@\n>>>    #\n>>>    # camera tuning tool for AWB\n>>> -from ctt_image_load import *\n>>>    import matplotlib.pyplot as plt\n>>>    from bisect import bisect_left\n>>>    from scipy.optimize import fmin\n>>> +import numpy as np\n>>> +\n>>> +from .image import Image\n>>>    \"\"\"\n>>> diff --git a/utils/tuning/libtuning/ctt_ccm.py b/utils/tuning/libtuning/ctt_ccm.py\n>>> index 59753e332ee9..f37adaf45538 100644\n>>> --- a/utils/tuning/libtuning/ctt_ccm.py\n>>> +++ b/utils/tuning/libtuning/ctt_ccm.py\n>>> @@ -4,12 +4,14 @@\n>>>    #\n>>>    # camera tuning tool for CCM (colour correction matrix)\n>>> -from ctt_image_load import *\n>>> -from ctt_awb import get_alsc_patches\n>>> -import colors\n>>> -from scipy.optimize import minimize\n>>> -from ctt_visualise import visualise_macbeth_chart\n>>>    import numpy as np\n>>> +from scipy.optimize import minimize\n>>> +\n>>> +from . import ctt_colors as colors\n>>> +from .image import Image\n>>> +from .ctt_awb import get_alsc_patches\n>>> +from .utils import visualise_macbeth_chart\n>>> +\n>>>    \"\"\"\n>>>    takes 8-bit macbeth chart values, degammas and returns 16 bit\n>>>    \"\"\"\n>>> diff --git a/utils/tuning/libtuning/macbeth.py b/utils/tuning/libtuning/macbeth.py\n>>> index 81f3e87c9088..265a33d68378 100644\n>>> --- a/utils/tuning/libtuning/macbeth.py\n>>> +++ b/utils/tuning/libtuning/macbeth.py\n>>> @@ -1,6 +1,7 @@\n>>>    # SPDX-License-Identifier: BSD-2-Clause\n>>>    #\n>>>    # Copyright (C) 2019, Raspberry Pi Ltd\n>>> +# Copyright (C) 2024, Ideas on Board Oy\n>>>    #\n>>>    # Locate and extract Macbeth charts from images\n>>>    # (Copied from: ctt_macbeth_locator.py)\n>>> @@ -11,6 +12,10 @@ import cv2\n>>>    import os\n>>>    from pathlib import Path\n>>>    import numpy as np\n>>> +import warnings\n>>> +from sklearn import cluster as cluster\n>>> +\n>>> +from .ctt_ransac import get_square_verts, get_square_centres\n>>>    from libtuning.image import Image","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 58995BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Jul 2024 15:35:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 35BE862E22;\n\tFri,  5 Jul 2024 17:35:39 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0B6FF619BF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Jul 2024 17:35:37 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3EF3B541;\n\tFri,  5 Jul 2024 17:35:07 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"fnV/OBpZ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1720193707;\n\tbh=lqlgNn5vzTPyRo3Gugqmapx6veoSi3mrhMrRuizw8mQ=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=fnV/OBpZyQw2HHxsEwOCPpVsvAdMM3A/lPUfIvkdyP4MviQFpLyweMdERmlhgr51E\n\tN6l0CbdGDBTyLLlA0Dj/RsPR4vJprGWNHSdRTnrg9N5WFvq3YJGZJB4eRxssyqu9sy\n\thGL8qy5+cwQrSR5S7S1v8257jjvXixrto+W1SfMY=","Message-ID":"<22f15b2d-133c-4412-baeb-1e6304b5b0d8@ideasonboard.com>","Date":"Fri, 5 Jul 2024 16:35:33 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v4 06/23] libtuning: Fix imports","To":"Stefan Klug <stefan.klug@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20240705144209.418906-1-stefan.klug@ideasonboard.com>\n\t<20240705144209.418906-7-stefan.klug@ideasonboard.com>\n\t<5a2d7a07-dccb-4c89-8f7a-0e8515cbcfe6@ideasonboard.com>\n\t<njmutweyl2ofqqjbggirw3j6zd4n5zzhttzqwzm6kqhbdbtnqv@jih2777wls3p>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<njmutweyl2ofqqjbggirw3j6zd4n5zzhttzqwzm6kqhbdbtnqv@jih2777wls3p>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]