[{"id":22967,"web_url":"https://patchwork.libcamera.org/comment/22967/","msgid":"<YoNaqtX3SY7l9Syk@pendragon.ideasonboard.com>","date":"2022-05-17T08:19:54","subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Tomi,\n\nThank you for the patch.\n\nOn Mon, May 16, 2022 at 05:10:14PM +0300, Tomi Valkeinen wrote:\n> Add some annotations to reduce the typechecker warnings.\n> \n> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> ---\n>  test/py/unittests.py | 17 +++++++++++------\n>  1 file changed, 11 insertions(+), 6 deletions(-)\n> \n> diff --git a/test/py/unittests.py b/test/py/unittests.py\n> index 288dcd48..e5591f3f 100755\n> --- a/test/py/unittests.py\n> +++ b/test/py/unittests.py\n> @@ -10,6 +10,7 @@ import libcamera as libcam\n>  import os\n>  import selectors\n>  import time\n> +import typing\n>  import unittest\n>  import weakref\n>  \n> @@ -70,6 +71,9 @@ class SimpleTestMethods(BaseTestCase):\n>  \n>  \n>  class CameraTesterBase(BaseTestCase):\n> +    cm: typing.Any\n> +    cam: typing.Any\n> +\n>      def setUp(self):\n>          self.cm = libcam.CameraManager.singleton()\n>          self.cam = next((cam for cam in self.cm.cameras if 'platform/vimc' in cam.id), None)\n> @@ -131,8 +135,8 @@ class AllocatorTestMethods(CameraTesterBase):\n>          self.assertTrue(ret > 0)\n>          wr_allocator = weakref.ref(allocator)\n>  \n> -        buffers = allocator.buffers(stream)\n> -        buffers = None\n> +        buffers = allocator.buffers(stream)     # type: ignore\n> +        buffers = None                          # type: ignore\n>  \n>          buffer = allocator.buffers(stream)[0]\n>          self.assertIsNotNone(buffer)\n> @@ -166,7 +170,8 @@ class SimpleCaptureMethods(CameraTesterBase):\n>          self.assertTrue(camconfig.size == 1)\n>  \n>          streamconfig = camconfig.at(0)\n> -        fmts = streamconfig.formats\n> +        fmts = streamconfig.formats     # type: ignore\n> +        fmts = None                     # type: ignore\n\nWas this intended ? Actually, fmts doesn't seem to be used at all.\n\n>  \n>          ret = cam.configure(camconfig)\n>          self.assertZero(ret)\n> @@ -225,7 +230,7 @@ class SimpleCaptureMethods(CameraTesterBase):\n>          self.assertTrue(camconfig.size == 1)\n>  \n>          streamconfig = camconfig.at(0)\n> -        fmts = streamconfig.formats\n> +        fmts = streamconfig.formats     # type: ignore\n>  \n>          ret = cam.configure(camconfig)\n>          self.assertZero(ret)\n> @@ -349,9 +354,9 @@ if __name__ == '__main__':\n>          gc.unfreeze()\n>          gc.collect()\n>  \n> -        obs_after = get_all_objects([obs_before])\n> +        obs_after = get_all_objects([obs_before])   # type: ignore\n>  \n> -        before = create_type_count_map(obs_before)\n> +        before = create_type_count_map(obs_before)  # type: ignore\n>          after = create_type_count_map(obs_after)\n>  \n>          leaks = diff_type_count_maps(before, after)","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 EA87BC0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 08:20:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A507465657;\n\tTue, 17 May 2022 10:20:02 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A4D1160420\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 May 2022 10:20:00 +0200 (CEST)","from pendragon.ideasonboard.com (unknown [45.131.31.124])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 34BD848F;\n\tTue, 17 May 2022 10:20:00 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652775602;\n\tbh=yntBzh3vgZxtyQ/KDaIsdao3YOSrijdzYFUiaRmACf0=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=tjPZSKRi5TtdOdTap8frg+SEanOfalebvrFcAgXrvC5AgLrdf+dOJ5RSLAgo/6TYk\n\tCcznunjPPLPeyI4ki+huLvhKJHwQgRKucTToS45T+exXH/VGutx/IeNlEEFiIJD1XT\n\tndWotYRV95TXv7Ek6nWzB0AvdZWIY1ZS5vk6tDiFKd4/xTqhHn5+buRkXWBx7KWgV1\n\tFIP+tqZ+j9RVIBYt+IJjfEuRyj3XBs7e2jyxLDLCrxa4lDoyCnZDarCxTa14Hllk+t\n\tMcvwtj2dhH6L9zzhIneU5nhW/c0yaWEz4H0MzN7qWN5nWUiIrydF5c6JYuYBJ0QBAv\n\tyQMUT8abYA9Cw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652775600;\n\tbh=yntBzh3vgZxtyQ/KDaIsdao3YOSrijdzYFUiaRmACf0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=O6vd9j6MNFp+cliWLNqDySv3vaJ8/Fs8X6JHa/v5TpHZNCt8Mp3CONSwyeeH6byoV\n\tkMWARfyXkzS9/nv0/DHCNiPnSNsZ++n0uLy0mXrIh9N/R+SqvblrcdkIhv8Dh+vdyO\n\thw846iaeQUqaGtQwbQgUgUviKWiITC4e2EkqTq/I="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"O6vd9j6M\"; dkim-atps=neutral","Date":"Tue, 17 May 2022 11:19:54 +0300","To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Message-ID":"<YoNaqtX3SY7l9Syk@pendragon.ideasonboard.com>","References":"<20220516141022.96327-1-tomi.valkeinen@ideasonboard.com>\n\t<20220516141022.96327-7-tomi.valkeinen@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220516141022.96327-7-tomi.valkeinen@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22969,"web_url":"https://patchwork.libcamera.org/comment/22969/","msgid":"<b8e9907e-9fff-2332-731a-d4b345a0b253@ideasonboard.com>","date":"2022-05-17T08:21:39","subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 17/05/2022 11:19, Laurent Pinchart wrote:\n> Hi Tomi,\n> \n> Thank you for the patch.\n> \n> On Mon, May 16, 2022 at 05:10:14PM +0300, Tomi Valkeinen wrote:\n>> Add some annotations to reduce the typechecker warnings.\n>>\n>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n>> ---\n>>   test/py/unittests.py | 17 +++++++++++------\n>>   1 file changed, 11 insertions(+), 6 deletions(-)\n>>\n>> diff --git a/test/py/unittests.py b/test/py/unittests.py\n>> index 288dcd48..e5591f3f 100755\n>> --- a/test/py/unittests.py\n>> +++ b/test/py/unittests.py\n>> @@ -10,6 +10,7 @@ import libcamera as libcam\n>>   import os\n>>   import selectors\n>>   import time\n>> +import typing\n>>   import unittest\n>>   import weakref\n>>   \n>> @@ -70,6 +71,9 @@ class SimpleTestMethods(BaseTestCase):\n>>   \n>>   \n>>   class CameraTesterBase(BaseTestCase):\n>> +    cm: typing.Any\n>> +    cam: typing.Any\n>> +\n>>       def setUp(self):\n>>           self.cm = libcam.CameraManager.singleton()\n>>           self.cam = next((cam for cam in self.cm.cameras if 'platform/vimc' in cam.id), None)\n>> @@ -131,8 +135,8 @@ class AllocatorTestMethods(CameraTesterBase):\n>>           self.assertTrue(ret > 0)\n>>           wr_allocator = weakref.ref(allocator)\n>>   \n>> -        buffers = allocator.buffers(stream)\n>> -        buffers = None\n>> +        buffers = allocator.buffers(stream)     # type: ignore\n>> +        buffers = None                          # type: ignore\n>>   \n>>           buffer = allocator.buffers(stream)[0]\n>>           self.assertIsNotNone(buffer)\n>> @@ -166,7 +170,8 @@ class SimpleCaptureMethods(CameraTesterBase):\n>>           self.assertTrue(camconfig.size == 1)\n>>   \n>>           streamconfig = camconfig.at(0)\n>> -        fmts = streamconfig.formats\n>> +        fmts = streamconfig.formats     # type: ignore\n>> +        fmts = None                     # type: ignore\n> \n> Was this intended ? Actually, fmts doesn't seem to be used at all.\n\nYes. It's a test. I want to get formats and see that it gets released \n(or rather, the whole object chain gets released in the end, and we \nobserve that camera & cam manager gets released).\n\n  Tomi","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 E9AA7C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 08:21:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9DE0F6565A;\n\tTue, 17 May 2022 10:21:44 +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 037AA60420\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 May 2022 10:21:43 +0200 (CEST)","from [192.168.1.111] (91-156-85-209.elisa-laajakaista.fi\n\t[91.156.85.209])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 858A748F;\n\tTue, 17 May 2022 10:21:42 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652775704;\n\tbh=RWi72FOQKcZT44MZ3qH5UKAmooRErZPhBhluogedqBc=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=q+/hYcGWEaTF2b2fgcVPbwOjYDK7xtGmqFV1Qy1l2/H0CTasoXek/5RJ2WFhZvb7l\n\t58E3HTmbReGumNEf9Aa6io+B6H7t7q1B3wrevTnLUHLVKZuguHEHicl1hZ5rGivKuV\n\tyo7HgygHX2Og88p29waEt8ibCJlqtwOOv7syIE2whRq8dxHNjnKq1dbHzd386wpAsJ\n\tTsAqVs1Z8G7n67UP57SV85rdvIpVISS6teAv+MzRf4poudviMaMHQZhjM91HAVvLNg\n\t7nrf0S6wCry6Q6pEWelEFIm/oLlZY2Wvtw8Qh4BHkZBtwmC8gJz9ZCSIhg53PYBjuX\n\tCZvg/b5MGoENA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652775702;\n\tbh=RWi72FOQKcZT44MZ3qH5UKAmooRErZPhBhluogedqBc=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=n+iHbMTTuUukiL3M+9ec8E5M7dvOTRyQwEvxNNNiuasi0AMHyUU6xxtiite9VSsDX\n\trZaMGO5QY3H9sechfntY62+0gMYAdUFE0evkokKfIZS6W++p2rqdd1NkM39b0D3vaq\n\tDwHfanIQ14lYXlDQO8i0ktTT2vuFkc8OertWJVBc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"n+iHbMTT\"; dkim-atps=neutral","Message-ID":"<b8e9907e-9fff-2332-731a-d4b345a0b253@ideasonboard.com>","Date":"Tue, 17 May 2022 11:21:39 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.8.0","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20220516141022.96327-1-tomi.valkeinen@ideasonboard.com>\n\t<20220516141022.96327-7-tomi.valkeinen@ideasonboard.com>\n\t<YoNaqtX3SY7l9Syk@pendragon.ideasonboard.com>","In-Reply-To":"<YoNaqtX3SY7l9Syk@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","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>","From":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":22972,"web_url":"https://patchwork.libcamera.org/comment/22972/","msgid":"<f7ea9a43-1ac6-bcb0-4d10-a9c90b971b39@ideasonboard.com>","date":"2022-05-17T08:25:02","subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","submitter":{"id":109,"url":"https://patchwork.libcamera.org/api/people/109/","name":"Tomi Valkeinen","email":"tomi.valkeinen@ideasonboard.com"},"content":"On 17/05/2022 11:21, Tomi Valkeinen wrote:\n> On 17/05/2022 11:19, Laurent Pinchart wrote:\n>> Hi Tomi,\n>>\n>> Thank you for the patch.\n>>\n>> On Mon, May 16, 2022 at 05:10:14PM +0300, Tomi Valkeinen wrote:\n>>> Add some annotations to reduce the typechecker warnings.\n>>>\n>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n>>> ---\n>>>   test/py/unittests.py | 17 +++++++++++------\n>>>   1 file changed, 11 insertions(+), 6 deletions(-)\n>>>\n>>> diff --git a/test/py/unittests.py b/test/py/unittests.py\n>>> index 288dcd48..e5591f3f 100755\n>>> --- a/test/py/unittests.py\n>>> +++ b/test/py/unittests.py\n>>> @@ -10,6 +10,7 @@ import libcamera as libcam\n>>>   import os\n>>>   import selectors\n>>>   import time\n>>> +import typing\n>>>   import unittest\n>>>   import weakref\n>>> @@ -70,6 +71,9 @@ class SimpleTestMethods(BaseTestCase):\n>>>   class CameraTesterBase(BaseTestCase):\n>>> +    cm: typing.Any\n>>> +    cam: typing.Any\n>>> +\n>>>       def setUp(self):\n>>>           self.cm = libcam.CameraManager.singleton()\n>>>           self.cam = next((cam for cam in self.cm.cameras if \n>>> 'platform/vimc' in cam.id), None)\n>>> @@ -131,8 +135,8 @@ class AllocatorTestMethods(CameraTesterBase):\n>>>           self.assertTrue(ret > 0)\n>>>           wr_allocator = weakref.ref(allocator)\n>>> -        buffers = allocator.buffers(stream)\n>>> -        buffers = None\n>>> +        buffers = allocator.buffers(stream)     # type: ignore\n>>> +        buffers = None                          # type: ignore\n>>>           buffer = allocator.buffers(stream)[0]\n>>>           self.assertIsNotNone(buffer)\n>>> @@ -166,7 +170,8 @@ class SimpleCaptureMethods(CameraTesterBase):\n>>>           self.assertTrue(camconfig.size == 1)\n>>>           streamconfig = camconfig.at(0)\n>>> -        fmts = streamconfig.formats\n>>> +        fmts = streamconfig.formats     # type: ignore\n>>> +        fmts = None                     # type: ignore\n>>\n>> Was this intended ? Actually, fmts doesn't seem to be used at all.\n> \n> Yes. It's a test. I want to get formats and see that it gets released \n> (or rather, the whole object chain gets released in the end, and we \n> observe that camera & cam manager gets released).\n\nActually, I should just assert that fmts != None. That both adds another \ntest check, and should get rid of the typechecker warnings.\n\n  Tomi","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 68237C3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 08:25:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1E0B765656;\n\tTue, 17 May 2022 10:25:07 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 95A7A60420\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 May 2022 10:25:05 +0200 (CEST)","from [192.168.1.111] (91-156-85-209.elisa-laajakaista.fi\n\t[91.156.85.209])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1A83A48F;\n\tTue, 17 May 2022 10:25:05 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652775907;\n\tbh=It+6lUD1C0cqvrQpcJ+wI1EkR3IwfkRDzW4EGSdWEPc=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=so4kg0PfbXlgudbJQbTgFC0YuF9g1jvUggjuHdP7VTBfHMukN65WWTOMF8kTiGOgZ\n\tQBR59dVXIs32sUuco3U4O92z/ZDbYI781NaFtGcNTC2ZITHWkdYf6kV0sJ1ANeIgEd\n\tXy+E5Vhv6IfmKzuY8xRmq9YZ/aFv/WeLcsBij+dY8oki+jymPgqMTdTGRWeH+BLC1X\n\t4yFZ6wqqpknO3R7COE96uewv2KECQTO3ObcYdn+OXJwcjXb+o7qsmm2aG/3N+hMLL+\n\tgXGI2qiekrMVglOW225fWIR6zs/3YbIHBmlmxPZNJqV2tRMJ1mIOaKUJVU4QNgBYBI\n\tZG+O0xFH5NwOg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652775905;\n\tbh=It+6lUD1C0cqvrQpcJ+wI1EkR3IwfkRDzW4EGSdWEPc=;\n\th=Date:Subject:From:To:Cc:References:In-Reply-To:From;\n\tb=Tnpdt9qnAvohtRh8H87vepdgzFs995yT1+bsOrEbOkh4HPPo9EvfqZExsD/jyMJaM\n\tkMw8fsk3/eCe+IJV3P3L7ROXDBFOmYXrD7ZzI5/QQHwRBD922GE3eGLkki1w4VcJH+\n\tYbyD8tit6GHQRG5yTkl/9FbcvLHqECtij1B9vJFw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Tnpdt9qn\"; dkim-atps=neutral","Message-ID":"<f7ea9a43-1ac6-bcb0-4d10-a9c90b971b39@ideasonboard.com>","Date":"Tue, 17 May 2022 11:25:02 +0300","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.8.0","Content-Language":"en-US","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20220516141022.96327-1-tomi.valkeinen@ideasonboard.com>\n\t<20220516141022.96327-7-tomi.valkeinen@ideasonboard.com>\n\t<YoNaqtX3SY7l9Syk@pendragon.ideasonboard.com>\n\t<b8e9907e-9fff-2332-731a-d4b345a0b253@ideasonboard.com>","In-Reply-To":"<b8e9907e-9fff-2332-731a-d4b345a0b253@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH 06/14] py: unittests: make typechecker\n\thappy","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>","From":"Tomi Valkeinen via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]