Python email.utils.parseaddr()现在是遗留API。我可以继续使用它吗?

Python email.utils.parseaddr()现在是遗留API。我可以继续使用它吗?,python,Python,我花了一些时间阅读库模块的文档。我们有了一个新的API。旧API现在标记为遗留 我只有一个小的电子邮件应用程序,我希望它不会很难重写它使用新的和更好的API只。但是,我找不到简单的email.utils.parseaddr()函数的简单替代品。他们说: 由于 它们提供的解析和格式化由 新API的头解析机制 仅就电子邮件模块而言,这可能是正确的,但我需要将RFC821样式的地址传递给smtplib模块函数,这些函数期望来自\u addr和到\u addr。这些SMTP信封地址基本上是剥离的邮件头地

我花了一些时间阅读库模块的文档。我们有了一个新的API。旧API现在标记为遗留

我只有一个小的电子邮件应用程序,我希望它不会很难重写它使用新的和更好的API只。但是,我找不到简单的
email.utils.parseaddr()函数的简单替代品。他们说:

由于 它们提供的解析和格式化由 新API的头解析机制

仅就
电子邮件
模块而言,这可能是正确的,但我需要将RFC821样式的地址传递给
smtplib
模块函数,这些函数期望
来自\u addr
到\u addr
。这些SMTP信封地址基本上是剥离的邮件头地址,
parseaddr
可以轻松创建它们:

smtp_addr = email.utils.parseaddr(email_addr)[1]
在新的API中是否有一个相对简单的替代方案(我必须监督它)?如果不是,我是否应该期待“遗留”API会留在库中,或者它在将来会被弃用


注意:我知道
smtplib
可以从消息头中提取地址。我仍然喜欢明确地传递地址。

简短回答:,从现在起,您可以继续使用它

长答案

指定在删除受支持的API之前,必须弃用这些API;指定用于弃用的进程;并列出所有不推荐使用的模块,包括当前模块和历史模块

在PEP 4或其Python 3.6.5文档中,当前在
email
中记录的“遗留API”子模块均未标记为“已弃用”。中有一个建议不推荐对
isdst
选项的支持,但这是我在搜索中发现的对
email
模块的唯一建议不推荐

无论如何,文档表明,这是一个受到相当多关注和关注的API,不容忽视。我看不出有明显的理由担心,即使是“遗留API”部分中的API,也会很快被弃用

例如,这句话在:

此模块是旧版(Compat32)电子邮件API的一部分。新API中的contentmanager部分取代了它的功能,但在某些应用程序中,这些类可能仍然有用,即使在非遗留代码中也是如此

告诉我,“遗留”的名称仅意味着它不再被认为是用于最常见目的的最佳、最首选模块;没有关于API将很快消失的实际弃用警告


当然,今天没有反对的提案并不能保证明天不会突然被反对;我想有人可能会认为“遗留API”更可能成为弃用的目标。但在正式提出反对意见之前,如果不获得批准,理论上没有理由担心使用API;考虑到Python 2到3过渡期的惊人长度(它是什么?),我认为您不必担心这个API。

如果“can”不意味着物理上的可能性,那么是的,您可以,为什么不呢。如果你问你是否应该继续使用它,那么答案恐怕是基于意见的。是的,你是对的,根据用例,你应该打电话,例如软件更新的频率。