From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on gnuweeb.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM, NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by gnuweeb.org (Postfix) with ESMTPS id 35E1781892 for ; Tue, 20 Dec 2022 01:51:16 +0000 (UTC) Authentication-Results: gnuweeb.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=qrNvAWC2; dkim-atps=neutral Received: by mail-pg1-f182.google.com with SMTP id 7so2363600pga.1 for ; Mon, 19 Dec 2022 17:51:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=mewG0llLcrqcR2N5FBmplh6HS9Sxq30KqXrF1on6jQA=; b=qrNvAWC225hrH2sMabew97+Lkw9KPWhSpEtYaoX7tJVNgjvy48jqYrg3JPHuZkeRxT 0GFPTPBPmgWGvjfpVSf36jCvKp3QGVM1f1BESIW0K4GfBnJvgsgs2Toe6QoA5XH5nIF1 e//spt9ONhCsyvkxqiz8YwNsV8lMpH0jGSxtVQjeeBLRRkIAR4MLjVVJVoHLBOv0p/8P uauYmIBPHXxK1/BJw+MRXSI84CyUNUdtOdsyr/g9ScsgJNnlZKL9wpj2WH6p3GJjtD42 uc9wH5gYyMgl7teqbGkPX1bezdWs26CX7EzO2INEZxWKh/kxxb8gn9LmFYDN7Y5WNEBO auhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mewG0llLcrqcR2N5FBmplh6HS9Sxq30KqXrF1on6jQA=; b=Ar/S2eBjw4rg5ZUERIGVC2khIsUtH0vcZM+1NPp6j5qlUpRczpCQBi1dpROQB+5ttm qjY5IQhp3k4eKoCVXNt0PURqyoPByjpc5+jhbDeohClxJmWr6DsMlO402/ZWQVp3kkLC 5nB9bnvAoWqZeogmD0vDC0juuLvniznsSzh3ue8kqc0lH3TElTLqv6Ujbu7i4DelHkle EE8xJXlN7NxfmEnYvJnBHDWBHAXadqfrPbNfLsNgBEvv5GIxCBYHZAxx7xHWFRr6WevZ duUKpfKYCesuXG0VHIhtlL9olepBCsx7S+YIM8tSCuT3Ob50pAng6eFG7UBBpeOlY1PM SqDw== X-Gm-Message-State: AFqh2kog98qXuW/kWmJIoRVAnNcc4CkCB3H/4ALPr/8pBNb59KIH3z4R u/XRGFnMmr9G4OO6F+GNUSUW+mafwiVShQ== X-Google-Smtp-Source: AMrXdXtHU1lfnk139IZ0DgTsaL5TxXK9aNcTEoT6lSdLxo2ji6fN/zZ8XIdN/Mv3qdA5a+7jigHGoQ== X-Received: by 2002:a05:6a00:3008:b0:57e:1a5b:d4e with SMTP id ay8-20020a056a00300800b0057e1a5b0d4emr22515466pfb.10.1671501075507; Mon, 19 Dec 2022 17:51:15 -0800 (PST) Received: from [192.168.1.2] ([101.128.125.209]) by smtp.gmail.com with ESMTPSA id 62-20020a620441000000b0056d98e31439sm7482848pfe.140.2022.12.19.17.51.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 19 Dec 2022 17:51:15 -0800 (PST) Message-ID: <003ffb10-fa45-69a0-4d78-c2c3dcef234a@gmail.com> Date: Tue, 20 Dec 2022 08:51:09 +0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: [PATCH v3 04/17] fix: utils: Fix the extract_list() utility function Content-Language: en-US To: Alviro Iskandar Setiawan , Muhammad Rizki Cc: Ammar Faizi , GNU/Weeb Mailing List References: <20221219235721.126-1-kiizuha@gnuweeb.org> <20221219235721.126-5-kiizuha@gnuweeb.org> From: Kiizuha In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: On 20/12/2022 07.33, Alviro Iskandar Setiawan wrote: > On Tue, Dec 20, 2022 at 6:57 AM Muhammad Rizki wrote: >> +def extract_list(key: str, thread: Message): >> + try: >> + people = thread.get(key.lower()) >> + if not people: >> + return [] >> + except: >> return [] >> return __extract_list(people) > > Why does this have to be a "try and except"? > And not something like: > > k = key.lower() > if k in thread: > return __extract_list(people) > return [] It supposed to be just like this: people = thread.get(key.lower()) if not people: return [] return __extract_list(people) But, the library is throwing an error if an email is not adding a To recipients. Logs: Traceback (most recent call last): File "D:\Riski\Coding\Github\rushkii\lore-daemon\daemon\atom\utils.py", line 90, in extract_list people = thread.get(key.lower()) File "C:\Program Files\Python38\lib\email\message.py", line 471, in get return self.policy.header_fetch_parse(k, v) File "C:\Program Files\Python38\lib\email\policy.py", line 163, in header_fetch_parse return self.header_factory(name, value) File "C:\Program Files\Python38\lib\email\headerregistry.py", line 602, in __call__ return self[name](name, value) File "C:\Program Files\Python38\lib\email\headerregistry.py", line 197, in __new__ cls.parse(value, kwds) File "C:\Program Files\Python38\lib\email\headerregistry.py", line 344, in parse [Address(mb.display_name or '', File "C:\Program Files\Python38\lib\email\headerregistry.py", line 345, in mb.local_part or '', AttributeError: 'Group' object has no attribute 'local_part' But, I know what causing this error right now. This error is the problem from using the email policy to default. Refer: https://github.com/ammarfaizi2/lore-daemon/blob/91e86e6d1004da4526ca5514fa009bc253d5c4a3/daemon/atom/scraper.py#L61 I forget why I'm using `policy=email.policy.default` but I know it has a reason! What do you think? Should we just remove `policy=email.policy.default` or just keeping it and use the try/except in extract_list()?