Pandas: RLS:0.24.0

创建于 2018-12-03  ·  61评论  ·  资料来源: pandas-dev/pandas

跟踪问题

公开 PR
开放式问题

让我们精简一下。 我只是看了最新的 whatsnew 和它的巨大。 让我们尽快解决这个问题。 我知道有一些阻塞问题:DatetimeArray & What do with CalendarDay。

Release

最有用的评论

我在上面。 pypy 构建失败...

所有61条评论

这个想法是让 0.24.0 成为最后一个支持 py2 的版本,对吧?

24021 修复了时间戳比较中的极端情况行为,但也引入了 py2/py3 行为之间的不一致。 #21394 对 Timedelta 比较进行了类似的更改。

我们可以做的_最少_一致的事情是保持现状,改变 Timedelta 行为而不是 Timestamp 行为。 问题是是否要 a) 合并 #24021 并在 0.24.0 中具有不匹配的 py2/py3 行为,或者 b) 将 #21394 恢复到 0.24.0 之后并等待在第一个仅 py3 版本中更改两者。

我稍微倾向于选项b。

这个想法是让 0.24.0 成为最后一个支持 py2 的版本,对吧?

基本上,虽然我假设我们会做一些反向移植并做一个支持 py2 的 0.24.1 或 2。

我对这部分不是很熟悉,但你的选项 b 听起来很合理。

虽然......我可以忍受不一致的 py2 / py3 行为。 我们是否会与建筑物保持一致?这不是唯一的。

问:与
https://github.com/pandas-dev/pandas/pull/24021我们会与每个版本的内置 timedelta 保持一致吗?

这个版本确实很大,但 v.0.24 也很特别,因为它将有效地定义 1.0 API(在 0.24 和 1.0 之间的不弃用政策的意义上),而且显然整个 EA 工作的规模很大.

但是 - 尽管付出了很多努力 - 目前的状态仍然感觉有点半生不熟:

  • 日期时间重构: https :
  • ExtensionArray: https : __setitem_ (#24020) 或merge (#23020) 或EAs与其他 (pandas) 对象 (#22962 / #22974)、 groupby (#22861) 等之间的交互。
  • 回归: https :
  • pd.Array :#23581
  • 新属性的一致性(在任何地方都推荐.array超过.values ?)#23995
  • 为了保持一致性(尤其是与 EA 相关),我认为应该在 1.0 之前真正清理unique周围的 API (#24108)
  • 为简洁起见,我将省略其他几件事

实际上,在年底之前发布将意味着最多 10 天的截止日期,这从我的 POV 来看似乎是不现实的,即使是偷工减料。

鉴于上面@TomAugspurger的以下声明

基本上,虽然我假设我们会做一些反向移植并做一个支持 py2 的 0.24.1 或 2。

无论如何,实际上意味着在 2019 年初有更多的 PY2 支持,我认为应该考虑不要试图在年底之前强制发布。

如果在年底之前发布(或者在最重要的问题解决之前),那么我特别同意 Tom 的观点,即 PY2 需要0.24.1 ,如0.24.0将有太多问题(希望在 RC 中出现,但好吧......)成为最后一个版本,IMO。

或者(同时更符合 https://python3statement.org/,但也更具争议性),可以考虑今年有一个支持 PY2 的最后一个 0.23.5,然后将 0.24.0 作为 PY3-only明年...?

@h-vetinari pandas 几乎完全是一个志愿者项目。 因此,项目优先级由社区共识确定并努力实现。 我们有定期的及时发布; 0.24.0 实际上已经过期了几个月。 试图添加自己需要讨论的其他事情是不会发生的。

0.24.x 系列中存在的任何内容都是 Python 2 的最后一个版本,这一点早就宣布了。 这就是它的样子。

我不遵循的观点
https://github.com/pandas-dev/pandas/issues/24060#issuecomment -444777018。 你能试着重述/总结一下吗?

我认为 Py2 与 Py3 与 0.24.0 无关。

您链接的与 EA 相关的问题我认为都在 0.24 中(我没有全部检查)。 这基本上是目前的障碍,但我最近没有审查积压。

我没有时间研究独特的。

@jreback

@h-vetinari pandas 几乎完全是一个志愿者项目。 因此,项目优先级由社区共识确定并努力实现。 我们有定期的及时发布; 0.24.0 实际上已经过期了几个月。 试图添加自己需要讨论的其他事情是不会发生的。

我知道这一切。 我只是说,如果某些核心更改尚未完全开发(主要是关于 EA + 回归),那么过期是急于发布的一个不好的理由。

0.24.x 系列中存在的任何内容都是 Python 2 的最后一个版本,这一点早就宣布了。 这就是它的样子。

我不知道其他频道讨论了什么,但我在 GH 上看到的是主要决定是0.24->0.25->1.0 。 回复:PY2,同样有人说(并且对 whatsnew 的影响有警告)在 2018 年 12 月 31 日之后将不会发布 PY2。支持 PY2 的 0.24.0 系列还有大约 6-8 个月支持 PY2(因为向后移植到 0.24 分支会非常麻烦)。 当然这是一个有效的选择,但我只是想建议将 PY2 保持在非常稳定的 0.23.5 的可能性。

@TomAugspurger

我不遵循的观点

24060(评论)。 你能试着重述/总结一下吗?

我认为 Py2 与 Py3 与 0.24.0 无关。

抱歉,这不清楚。 主要的(相互关联的)两点是:

  • 由于规定的截止日期(支持 PY2)是 12 月 31 日,因此不应急于 0.24。

    • 为此列出了一些问题 - 其中一些(以及我没有标记的更多相关问题)已被推送到“欢迎贡献”而不是 v.0.24

    • 提出 0.24 是特殊的,因为 1.0 之前的 API 锁定政策,我认为这对于.unique来说是一个遗憾(但我知道我是荒野中唯一的声音一)

  • 指出警告框(“从 2019 年 1 月 1 日开始,pandas 功能版本将仅支持 Python 3”)和支持 PY2 的 0.24 系列之间的差异,以及为 PY2 提供 0.23.5 的建议

您链接的与 EA 相关的问题我认为都在 0.24 中(我没有全部检查)。 这基本上是目前的障碍,但我最近没有审查积压。

最近积压的工作已经大大减少,尤其是由于问题被推到“欢迎贡献”(也适用于 EA 问题)。 这朝着我的观点走捷径以尽快解决这个问题。

话虽这么说,我还是这个游戏的新手,我不怀疑核心开发人员已经掌握并控制了大局 - 但我希望指出一个观察不会有坏处。

我没有时间研究独特的。

很公平,开发时间是非常有限的资源。 我想我必须尝试在 1.0 后的土地上说服所有人。 ;-)

@h-兽医

我知道这一切。 我只是说,如果某些核心更改尚未完全开发(主要是关于 EA + 回归),那么过期是急于发布的一个不好的理由。

如果我们继续添加和添加,那么发布就会永远延迟。 我在沙子上画了一条线。 这就是您将产品推出市场的方式。 一旦 DTA 完全落地,我们就可以发布了。 所以这并不是那么遥远。 当然我们可以做额外的工作,只是说 0.23.5 是最后一个 PY2 版本(当然也发布它)。 但是回到稳定的分支会更容易,这意味着 0.24.x 系列。

总有一些东西要添加到一个版本中,但这一个已经是我们有史以来最大的一个。 有不可避免的错误,所以最好尽快而不是迟到。 感谢您的贡献。 不可能在这里获得所有主要的 API 更改。 你是完全正确的,开发时间是一个真正有限的资源。

@jreback
感谢您的回复。 我知道你想尽快把它弄出去,这当然是公平的。

但是回到稳定的分支会更容易,这意味着 0.24.x 系列。

似乎我误解了熊猫会在 2019 年 1 月 1 日停止支持 PY2 ......也许应该在 whatsnews 中调整那个警告框(“ v.0.24.x将是支持 PY2 的最后一个系列;从v.0.25.0 , pandas 将是 python3-only"...?)

回复:CalendarDay 进度https://github.com/pandas-dev/pandas/pull/22867#issuecomment -445433463

去做
添加所有折旧警告(我预计其中有很多)。 这需要包含在以下内容中:

  • 与其他 Ticks、Timedeltas 和 DatetimeTZ 的日刻度算术
  • DatetimeIndex.shift(仅限 tz 感知)

移民
该计划是让 _Day(以前的 CalendarDay)在替换之前的 Day 行为后仅替换 Day。

关心
在上次开发者聊天中,有兴趣让“D”与 Timedelta 和 Datetime 兼容的频率参数/偏移量。 在不添加大量猴子补丁的情况下,我看不到一种明确的方法可以使这成为可能。

示例:timedelta_range(..., freq='D'); to_offset('D') 会在未来返回 _Day 并且这个偏移量需要增加一个 Timedelta,但是 _Day + Timedelta 是一个无效的操作。

有人对时间戳/timedelta py2/py3 一致性问题有意见吗?

一堆弃用在 1.0 中被列为待删除; 对于其中一些,0.25.0 应该代替 1.0 吗?

有人对时间戳/timedelta py2/py3 一致性问题有意见吗?

你能总结一下这个问题吗? 理想情况下,我认为我们会在这里遵循 python(无论正在运行什么版本)。 但我不认为我完全理解这个问题。

一堆弃用在 1.0 中被列为待删除; 对于其中一些,0.25.0 应该代替 1.0 吗?

我认为他们所有人......虽然需要讨论,但有些可能需要推动。

https://github.com/pandas-dev/pandas/issues/24060#issuecomment -444180736

Timedelta 最近更改为返回 NotInplemented 以防它先前提出。 因此,它的 py2 行为与 python 匹配,但与 pandas py3 行为不同。

Timestamp 有一个开放的 PR 可以进行类似的更改。

一旦 py2 被删除,改变绝对是正确的。 在此之前,存在相互矛盾的一致性论点。

我们应该获取 0.24.0 的 Timestamp PR,或者将 Timedelta PR 恢复到 0.24.0 之后

(用拇指打字;如果不清楚,LMk)

我想让我们恢复 Timedelta 之一,然后将它们都推入 0.25/1.0(仅限 py3)

在此处移动此评论https://github.com/pandas-dev/pandas/pull/24227#issuecomment -446680041:

(对于 IMO,我们还需要至少几周的硕士课程)

[Tom] 只是为了验证一下,我们应该尽快用 DatetimeArray 做一个发布候选,对吗? 然后在 RC 出来的时候在 master 上 1-2 周?

就个人而言,不,我不会那样做(如果你的意思是几天后尽快)。 在进行 RC 之前,我还会在 master 中至少保留 2 周。 现在在实践中,无论如何它可能会是这样..

就个人而言,在推动 datetimearray 之后,我将不得不回到 dask / 其他事情上。 我希望在我这样做的时候我们可以有一个 RC。

在我们进行这一轮审查时,我还有其他重大问题可以解决吗? 我的盘子目前有

是的,我认为我们应该合并一些东西(汤姆提到的那个)然后至少在主人那里坐一周或两周

说清楚,我也想尽快看到这个发布,但我们也需要现实(例如,我认为我们不会像你在 fastparquet 上提到的那样在年底之前发布最终版本?即使所有阻止的 PR 都在一周内合并,这似乎太快了 IMO)

如果我们有更长的 RC 周期,并且在进行 RC 之后仍然进行一些进一步的清理(并且可能进行第二次 RC),我可以在合并后进行快速 RC。
但是,如果我们将 RC 视为“准备好从我们的部分发布,如果尝试 RC 的人没有报告重大问题,我们可以从中进行最终发布”,那么我们应该在 master 中进行这些重大更改位海事组织。

我想我有权限做一个 fastparquet 版本。 今天可以发布一个向后/向前兼容的更改。

但是,如果我们将 RC 视为“准备好从我们的部分发布,如果尝试 RC 的人没有报告重大问题,我们可以从中进行最终发布”,那么我们应该在 master 中进行这些重大更改位海事组织。

如果我们有更长的 RC 周期,并且在进行 RC 之后仍然进行一些进一步的清理(并且可能进行第二次 RC),我可以在合并后进行快速 RC。

这基本上就是我所在的位置。 假设本周合并了优秀的大 PR(只是假设,不是实际的截止日期),那么我们在接下来的几周内向他们提出问题。 我希望通过 RC(或两个)我们将更有可能出现更多问题,以便我们能够更快地发布更高质量的最终版本。

尽早进行 RC 的主要成本是我们不会再出现范围蔓延,这可能是件好事 :)

也就是说,我不认为在 20 日至 27 日的任何时候进行 RC 都是一个好主意,因为是假期。 所以我也可以在新年后不久做一个。

一切听起来都不错; RC 第一年;

@jreback @TomAugspurger @jorisvandenbossche
你会在截止日期前接受 #22724 的 PR 吗? 我知道您希望避免范围蔓延并尽快将其排除在外,但我来自事物的一致性方面,我认为这是一个早晚进行的更改。 在我投入时间之前,我想我会问。

说到这 - 您是否已经知道在 v0.24 和 v0.25 之间进行重大更改的策略是什么? 它们会被完全阻止,还是会立即迁移到 1.0.0.dev,v0.25 使用反向端口?

@jreback @TomAugspurger @jorisvandenbossche

说到这 - 您是否已经知道在 v0.24 和 v0.25 之间进行重大更改的策略是什么? 它们会被完全阻止,还是会立即迁移到 1.0.0.dev,v0.25 使用反向端口?

重新问这个问题,因为 - 如果在 v.0.25 发布之前破坏 PR 将被阻止 - 我将暂停所有破坏 PR 的工作。

清除甲板,除非立即合并,否则请不要标记 0.24.0。 不包括@jbrockmendel@TomAugspurger仍在进行的清理工作

理想情况下,rc1 下周可以说, @TomAugspurger吗?

我也在考虑下周。现在正在处理积压工作。

2019 年 1 月 4 日星期五上午 8:00 Jeff Reback [email protected]写道:

清除甲板,除非立即合并,否则请不要标记 0.24.0。
不包括@jbrockmendel 仍在进行的清理工作
https://github.com/jbrockmendel和@TomAugspurger
https://github.com/TomAugspurger

理想情况下可以在下周说 rc1,@TomAugspurger
https://github.com/TomAugspurger


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pandas-dev/pandas/issues/24060#issuecomment-451450878
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHIt1WfzSQoOTnbRYdwYdvo6Qo1Zy5ks5u_16OgaJpZM4Y9wcW
.

是的,我也是

重新问这个问题,因为 - 如果在 v.0.25 发布之前破坏 PR 将被阻止 - 我将暂停所有破坏 PR 的工作。

我的偏好是,从 0.25 -> 1.0 唯一的 API 中断更改是删除以前不推荐使用的功能。 然后用户可以

  1. 确保事情在 0.25.x 上顺利运行
  2. 修复熊猫的任何 FutureWarnings
  3. 放心升级到 1.0

IIRC 在上次开发会议上对此达成了松散的协议。

@TomAugspurger 的意思是我们仍在 0.25 开发周期中进行重大更改/弃用? (因为这是我认为@h-vetinari 的实际问题,除了 0.25 -> 1.0)

我真的不记得我们说了什么,只是从夏天的冲刺中模糊地回忆起我们已经希望在 0.24 中所有弃用,而不是在 0.25 中添加更多(尽管https://github.com/pandas- 中的摘要2018 年7 月)仅谈到在 0.25 中包含所有弃用并在 1.0 中删除它们)。

对不起,如果我看错了。 您模糊的回忆与我对 0.25.0 弃用的模糊回忆相符:)

我们要重新审视该政策吗? IOW 我们是否希望在 0.25.0 中允许新的弃用

  • 在 1.0 中删除(社区没有太多时间适应)
  • 为 1.0 维护,并在 2.0 中删除(如果我们正在做 semver)

我们应该在 0.24 后就计划进行电话会议

https://github.com/pandas-dev/pandas/pull/24708合并后,我想在约 4 小时内削减 RC1。 有异议吗?

我们需要讨论在 RC 期间合并 PR 的保守程度。 我不记得我们上次做了什么(只有 PR 专门修复了 RC 的错误?或者“小”的东西还可以吗?)。

好的 RC,是的,小东西没问题。 如果我们有那么可能需要 RC2

现在标记,并在推送标记之前通过本地测试。 如果你找到最后一分钟的拦截器,请联系我。

@TomAugspurger您提到您将为该版本写一篇博客文章,但我想只为最终版本?
在那种情况下,最好已经有一些亮点(我开始起草一些); whatsnew 文件通常可以进行一些清理。

知道需要多长时间吗? 我正要推标签:)

不过,我可以重建将从不同提交推送到 Web 服务器的文档。

你有更多时间,因为我认为我需要对我们的 conda-forge 配方做一些工作以确保 numpy >= 1.12 :)

是的,不要等我。 我还有一些工作要先完成。

行。 标记。

2019 年 1 月 11 日星期五上午 9:13 Joris Van den Bossche <
通知@github.com> 写道:

是的,不要等我。 我还有一些工作要先完成。


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pandas-dev/pandas/issues/24060#issuecomment-453548795
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHIsamTvr2YaLm68tQDFCX40_nraSTks5vCKo3gaJpZM4Y9wcW
.

我开始浏览 whatsnew 文件以提取亮点,并且已经想到:

  • 重构自定义数据类型的内部处理:

    • 更好地集成 ExtensionArray 接口

    • Period 和 Interval 现在可以存储在 Series / DataFrame 列中(之前仅在索引中)

  • Series 和 Index 上的新.array属性以访问基础值,以及to_numpy方法以转换为 numpy 数组。
  • 可选整数 NA
  • 稀疏变化

对于所有类似日期时间的重构,有什么值得一提的吗? (除了“重构自定义数据类型的内部处理”)

还有其他值得一提的新功能或变化吗?

https://github.com/pandas-dev/pandas/releases/tag/v0.24.0rc1有几个。

2019 年 1 月 11 日星期五上午 9:51 Joris Van den Bossche <
通知@github.com> 写道:

我开始浏览 whatsnew 文件以提取亮点,然后
已经想到了:

  • 重构自定义数据类型的内部处理:

    • 更好地集成 ExtensionArray 接口

    • Period 和 Interval 现在可以存储在 Series / DataFrame 中

      列(仅在索引之前)

  • Series 和 Index 上的新 .array 属性以访问底层
    值和 to_numpy 方法转换为 numpy 数组。
  • 可选整数 NA
  • 稀疏变化

对于所有类似日期时间的重构,有什么值得一提的吗?
(除了“重构自定义数据类型的内部处理”)

还有其他值得一提的新功能或变化吗?


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pandas-dev/pandas/issues/24060#issuecomment-453561740
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHIh4Abyv5aEhn2vAA7KAJziTL75Rkks5vCLL7gaJpZM4Y9wcW
.

二进制文件正在构建中,HTML 文档在http://pandas.pydata.org 上。

二进制文件完成后,将在今天晚些时候发布公告。

Mac 和 Linux 轮子在 PyPI 上。 Conda 包正在流入 conda-forge,我发送了通知电子邮件。

https://github.com/pandas-dev/pandas-release有一些需要修复的地方。 有些是 RC 特定的,所以我不太担心它们。 我会在做最终版本时尝试解决所有最终问题,然后希望其他人可以尝试一下,看看我不小心在里面编码了哪些特定于机器的东西。

0.24.0rc1 没有窗轮?

我不确定@cgohlke 是否通常会构建和上传候选版本。

我在上面。 pypy 构建失败...

谢谢@cgohlke ,Windows 轮子现在在 PyPI 上。

本周我们可能应该做 0.24.0。 有异议吗? 有没有拦截器?

我不知道我是否会完成https://github.com/pandas-dev/pandas/pull/24674 。 这周不会有太多时间。

没有异议 - 喜欢获得当前标记为 0.24.0 的内容,但如果在几天内他们不同意推迟

@TomAugspurger 0.24.0 的所有问题和 PR 都是干净的

我将做一个快速的文档 PR,将实验标签添加到 DatetimeArray 和
TimedeltaArray,并警告.dtype预计会在
未来。

2019 年 1 月 23 日星期三上午 7:03 Jeff Reback [email protected]
写道:

@TomAugspurger https://github.com/TomAugspurger所有问题和公关都是
清洁 0.24.0


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pandas-dev/pandas/issues/24060#issuecomment-456793566
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHImKD-UhxOjifdIssgpzK7mRPh69fks5vGF2mgaJpZM4Y9wcW
.

计划合并

并在不久之后标记。 RC还有什么其他的吗?

2019 年 1 月 23 日,星期三,上​​午 7:15 汤姆·奥格斯普尔[email protected]
写道:

我将做一个快速的文档 PR,将实验标签添加到 DatetimeArray 和
TimedeltaArray,并警告.dtype预计会在
未来。

2019 年 1 月 23 日星期三上午 7:03 Jeff Reback [email protected]
写道:

@TomAugspurger https://github.com/TomAugspurger所有问题和公关都是
清洁 0.24.0


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pandas-dev/pandas/issues/24060#issuecomment-456793566
或使线程静音
https://github.com/notifications/unsubscribe-auth/ABQHImKD-UhxOjifdIssgpzK7mRPh69fks5vGF2mgaJpZM4Y9wcW
.

向下

如果人们对 #24926 有快速的想法(从顶层删除 IntervalArray,只使用pd.arrays.IntervaArray ),那么快速的 +/-1 会很有用。

@TomAugspurger在标记之前,您可以在 whatsnew 文档中对日期进行最后一次设置吗? (现在还是 XX 年 1 月)或者在发布提交中

我认为所有合并!

谢谢,标记。

不错@TomAugspurger

哇! 恭喜。 感谢您的辛勤工作。 真的很期待上映。

sdist 和二进制文件在 PyPI 和 conda-forge 上运行。 Anaconda 现在正在构建默认设置。

感谢大家。

谢谢!

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