dask存储库中的语义版本控制

问题描述

由于函数read_metadata与旧版本不兼容,为什么the commit 7138f470f0e55f2ebdb7638ddc4dfe2e78671403不会触发dask的新主版本?提交引入了4个值的返回,但是旧版本仅返回3个值。根据语义versioning,这将是正确的行为。

cudf由于该提交而被破坏。

问题代码:

>>> import cudf
>>> import dask_cudf
>>> dask_cudf.from_cudf(cudf.DataFrame({'a':[1,2,3]}),npartitions=1).to_parquet('test_parquet')

>>> dask_cudf.read_parquet('test_parquet')
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
  File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask_cudf/io/parquet.py",line 213,in read_parquet
    **kwargs,File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask/dataframe/io/parquet/core.py",line 234,in read_parquet
    **kwargs
  File "/nvme/0/vjawa/conda/envs/cudf_15_june_25/lib/python3.7/site-packages/dask_cudf/io/parquet.py",line 17,in read_metadata
    meta,stats,parts,index = ArrowEngine.read_metadata(*args,**kwargs)
ValueError: not enough values to unpack (expected 4,got 3)

dask_cudf == 0.14仅与dask

编辑:Link to the issue

解决方法

尽管Dask对版本字符串的值没有具体的政策,但有人可能会争辩说,在这种特殊情况下,IO代码是非核心的,并且很大程度上是由上游(pyarrow)开发而不是我们自己开发的主动性。

对于您的代码已损坏,我们深感抱歉,但是当然选择正确版本的软件包并期望下游软件包能够赶上是开源生态系统的一部分。

如果您想从更多的敏捷维护团队那里得到建议,您可能想把它作为github问题提出。 (从stackoverflow的角度来看,这里实际上没有多少“答案”)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...