GNU/Weeb Mailing List <[email protected]>
 help / color / mirror / Atom feed
From: Kiizuha <[email protected]>
To: Alviro Iskandar Setiawan <[email protected]>,
	Muhammad Rizki <[email protected]>
Cc: Ammar Faizi <[email protected]>,
	GNU/Weeb Mailing List <[email protected]>
Subject: Re: [PATCH v3 04/17] fix: utils: Fix the extract_list() utility function
Date: Tue, 20 Dec 2022 08:51:09 +0700	[thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <CAOG64qNjbtds3x=Zf-wTsea6r_e+ftS4nZy1qViiByCwwUFybg@mail.gmail.com>

On 20/12/2022 07.33, Alviro Iskandar Setiawan wrote:
> On Tue, Dec 20, 2022 at 6:57 AM Muhammad Rizki <[email protected]> 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 <listcomp>
     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()?

  parent reply	other threads:[~2022-12-20  1:51 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-19 23:57 [PATCH v3 00/17] RESEND: Fix, improvement and implement a bot logger Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 01/17] discord: Fix typo on _flood_exception() Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 02/17] fix: utils: Fix .patch file payload Muhammad Rizki
2022-12-20  0:15   ` Alviro Iskandar Setiawan
2022-12-20  0:18     ` Kiizuha
2022-12-19 23:57 ` [PATCH v3 03/17] fix: utils: add a substr for the patch media caption Muhammad Rizki
2022-12-20  0:29   ` Alviro Iskandar Setiawan
2022-12-20  1:59     ` Kiizuha
2022-12-20  8:13       ` Alviro Iskandar Setiawan
2022-12-19 23:57 ` [PATCH v3 04/17] fix: utils: Fix the extract_list() utility function Muhammad Rizki
2022-12-20  0:33   ` Alviro Iskandar Setiawan
2022-12-20  0:45     ` Ammar Faizi
2022-12-20  1:15       ` Alviro Iskandar Setiawan
2022-12-20  1:56         ` Kiizuha
2022-12-20  1:53       ` Kiizuha
2022-12-20  1:51     ` Kiizuha [this message]
2022-12-20  8:15       ` Alviro Iskandar Setiawan
2022-12-19 23:57 ` [PATCH v3 05/17] utils: Back to use decode=True for the get_payload() Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 06/17] utils: Improve fix_utf8_char() Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 07/17] utils: Add catch_err() for the log message Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 08/17] logger: Initial work for the bot logger for future use Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 09/17] telegram: Use the created BotLogger() class Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 10/17] telegram: Add variable LOG_CHANNEL_ID declaration Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 11/17] telegram: Add send_log_file() in the DaemonClient() Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 12/17] telegram: Implement the log message for catching errors Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 13/17] discord: Add variable LOG_CHANNEL_ID declaration Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 14/17] discord: Use the BotLogger() to the GWClient() Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 15/17] discord: Add send_log_file in " Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 16/17] discord: Implement the catch erros and logs Muhammad Rizki
2022-12-19 23:57 ` [PATCH v3 17/17] Remove some unused imports Muhammad Rizki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox