Приветствую
Потихоньку изучаю Python, ковыряю код и обнаружил, что в 3 питоне не работает следующий пример из Python2:
def getMsgs(server_name=SMTP_SERVER,from_address='*'):
mail = imaplib.IMAP4_SSL(server_name)
mail.login(FROM_EMAIL, FROM_PWD)
mail.select('Inbox')
typ, data = mail.search(None, ‘(FROM “’ + from_address + ‘”)’)
for num in data.split():
typ, data = mail.fetch(num,'(RFC822)')
msg = email.message_from_string(data)
yield msg
for msgs in getMsgs(from_address='blabla@bla-bla.com'):
print (“1”)
TypeError: initial_value must be str or None, not bytes
При этом, если сделать
msg = email.message_from_string(data.decode('unicode-escape')), то проблем нет (понятно, что init_value в этом случае является строкой)
Интересует какие именно были сделаны изменения в итераторе/генераторе в Python3, что данный пример не работает