Openlibrary: 在 Python 2 和 Python 3 上运行

创建于 2018-03-19  ·  20评论  ·  资料来源: internetarchive/openlibrary

被阻止:internetarchive/infogami#56、internetarchive/infogami#50

正如 #846 中所讨论的,Internet Archive 代码库中有很多代码目前是用 Python 2 编写的,但已弃用 Python 3。

以下链接介绍了从 Python 2 到 Python 3 的主要区别。

编辑:根据@clauss的建议更新

  • [x] 使代码库与 Python 3 语法兼容(在 Py3 上运行时,请参阅 __make lint__ 了解我们的状态)

    • [x] #1466 修复 Python 3 中异常的引发方式

    • [x] #1509 将 __six__ 添加到我们的要求中(我发现它不如下面提到的 __future__ 微妙)。

    • [x] #1517 函数参数可能不是 Python 3 中的显式元组

    • [x] #1603 重做从 #1466 中恢复的 __lambda__ 修复

    • [x] #1468 目录/marc/load.py 中格式错误的 \N 字符转义

    • [x] #1501 __print()__ 是 Python 3 中 plugins/upstream/acs4.py 中的一个函数

    • [x] 未定义的名称 __python3 -m flake8 。 --count --exclude=scripts/20 ,vendor/ --select=F821__

    • [x] __basestring__ 的 PR #1563

    • [x] __cmp()__ 的 PR #1643

    • [x] __execfile()__ 的 PR #1525

    • [x] __file()__ 的 PR #1564

    • [x] __raw_input()__ 的 PR #1526

    • [x] __unicode__ 的 PR(这是一个棘手的问题,最好保存到最后。)



      • [x] __xrange()__ 的 PR #1524



  • [x] 更新我们的依赖项以确保我们有 Python 3 支持(有关一些提示,请参阅 #1454。)
  • [x] 修复诸如__infogami__之类的东西中的

    • [x] __更多选项__, __Trigger build__ https://travis-ci.org/internetarchive/acs4_py

    • [x] internetarchive/acs4_py#7

    • [x] internetarchive/infogami#40

    • [x] internetarchive/infogami#42

    • [x] internetarchive/infogami#43

    • [x] internetarchive/infogami#56 Cherrypick 从#50 安全导入

    • [x] internetarchive/infogami#50 更多 Python 3 更新

    • [x] internetarchive/infogami 通过 Python 3 上的Travis CI 测试

  • [x] 在 Python 3 上通过 Travis 测试并关闭 __allow_failures__ 模式
  • [ ] 测试,测试,测试
@cclauss 2 Work In Progress Epic

最有用的评论

感谢您创建一个单独的问题来跟踪此问题。 这项任务绝对是低优先级的,但既不容易,也不是一个好的初学者项目,所以我删除了这两个标签。

像这样的事情对时间很敏感,所以 3-4 岁的随机博客文章不是一个好的信息来源。 出于规划目的,重要的是诸如所需的库何时都将支持 Python 3、何时将放弃 Python 2 支持、最新的迁移工具是什么样子等。

但是,由于它的优先级较低,因此我们有更重要的事情需要考虑。

所有20条评论

冒着陈述显而易见的风险,优先考虑的应该是识别那些 a) 将在 Python 3 中破坏和 b) 在 OL 中使用的 Python 2 功能。

感谢您创建一个单独的问题来跟踪此问题。 这项任务绝对是低优先级的,但既不容易,也不是一个好的初学者项目,所以我删除了这两个标签。

像这样的事情对时间很敏感,所以 3-4 岁的随机博客文章不是一个好的信息来源。 出于规划目的,重要的是诸如所需的库何时都将支持 Python 3、何时将放弃 Python 2 支持、最新的迁移工具是什么样子等。

但是,由于它的优先级较低,因此我们有更重要的事情需要考虑。

在所有方面与@tfmorris完全一致。
感谢您为此组织一个问题,因为最终我们需要找出维护infogami的路径。

嗯,有“优先事项”,然后有“优先事项”。 重要的可能不紧急,反之亦然。 我会说这个很重要但不紧急。 忽视太久肯定会导致破损。

@LeadSongDog你不同意谁? 您希望看到与优先事项相比有哪些变化?

@tfmorris并不是完全不同意您的观点,但我是说一维优先级会导致危机管理。 一旦困难的事情被标记为低优先级,它就会无人看管或被关闭,直到它导致损坏并变得紧急。 最好不要优先考虑它?

由于 PR #1273,现在有一个 Travis CI 工作来跟踪我们在这方面的进展

嗨,我是 OpenLibrary 的新手,但这看起来是我有兴趣做的事情。 你介意我继续这个吗,尽管这不是一个“好的第一期”?

注意:此列表已移至此问题的顶部:

此外,我建议我们将此问题的标题更改为“__Run on both Python 2 和 Python 3__”,因为拥有一个在 _before_ 上运行的代码库显然是最佳实践,删除 Python 2 支持。 距离 Python 2 生命周期结束还有 423 天。

@clauss在您的许可下,既然标题已更改且清单已更新,我可以更新上面的消息吗? (避免 2 个清单不同步)

除了 Infogami,您可以推荐的任何其他后续步骤将不胜感激:bowing_man:

感谢您成为实现这一目标的动力!

随意进行对您有意义的编辑。 让我们专注于让 Infogami 不再阻塞 Travis 测试。 我的注意力一直在其他地方,但希望我能在接下来的几周内重新参与。

更新了上面的任务列表,庆祝 Python 2 生命周期结束 100 天。

从这里的喋喋不休和懈怠,我将其标记为正在进行的工作。 但是,没有受让人。 我假设@cclauss和 @salman-bhai 将是最佳人选,因为他们是 Python3 的团队负责人。

@cclauss该表情符号是受让人吗? 看起来您和@hornc负责任务分解中的几乎所有 PR。

我们是否要重新散列 Python3 的特定剩余步骤/阻止程序?

我不确定为什么优先级会降低。 这不需要在 1 月 1 日之前完成,但确实需要尽快完成。

现在主要的拦截器是 infogami,尽管将其移植可能会揭示系统其他部分存在的问题。 与其尝试在此处分别跟踪每个 infogami 问题,不如指出一个 infogami 顶级 Python 3 史诗问题可能更有意义。

看起来我们还有几个月的缓刑期。 12 月底,Python 软件基金会将退休日期(再次!)推迟到 2020 年 4 月。

https://www.python.org/psf/press-release/pr20191220/

是的,但这个项目是我所知道的最后一个尚未完成的主要项目。

最终的 Python 2 版本已经发布: https :

从现在开始的每一天(实际上是从几个月前开始)都会增加暴露于危及 OpenLibrary 生产系统的未修补漏洞的风险。

是时候关闭这个了! 感谢所有帮助我们使用 Python 3 的人!!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

cdrini picture cdrini  ·  5评论

dcapillae picture dcapillae  ·  4评论

cdrini picture cdrini  ·  4评论

skylerbunny picture skylerbunny  ·  4评论

LeadSongDog picture LeadSongDog  ·  5评论