如何在通过 Travis CI 的文档字符串中编写示例?

How to write examples in docstrings that pass Travis CI?

我是 docstrings 中示例的朋友,并且(在我看来)好的示例包括用户在执行某些代码行时将看到的内容的声明。有时输出是字典,众所周知,字典本质上是无序的。

"""This method prints a dictionary.

Examples
--------
>>> a = dict(x=1, y=2)
>>> a
{'y': 2, 'x': 1}
""""

我当然也可以{'x': 1, 'y': 2}。正因为如此,特拉维斯 CI 会抱怨 "Failed doctest test" 的词语类似于这些:

Expected:
    {'y': 2, 'x': 1}
Got:
    {'x': 1, 'y': 2}

我不能告诉 Travis CI 字典是无序的。如何编写包含字典输出的示例文档字符串,以便通过文档字符串测试?

这听起来有点烦人。

我认为除了针对 Travis CI 提出问题(因为这个 Travis 错误)并希望它会得到修复。

与此同时,您可以将 Travis CI 配置为不 运行 此特定测试,或者您可以调整顺序并祈祷结果至少在您的特定安装上具有部分确定性,给定一个特定的输入。

不管怎样,你并不孤单:

看起来各种项目都不得不为这个问题编写解决方法。

我的问题本质上是关于文档字符串中的字典。我最喜欢的解决方法是

"""
>>> a = dict(x=1, y=2)
>>> sorted(a.items())
[('x', 1), ('y', 2)]
"""