问题标签 [python-attrs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
658 浏览

python - 任何用于序列化属性的 cattrs 解决方案都使用不同的名称?

我试图找到一个类似于 java Jackson ObjectMapper的解决方案,它可以将 python 对象序列化/反序列化为 json。并发现

  • cattrs最接近我的需要。但它不能像firstName在 json 中使用但first_name在反序列化对象中那样进行属性映射。

  • attrs-serde可以进行属性映射,但不能进行递归反序列化。

这个问题可以在这个例子中说明,

使用cattr 的任何更优雅的解决方案?

0 投票
1 回答
245 浏览

python - mypy 抱怨 attrs 类中的 TypedDict 具有不兼容的类型

DictWithOnlyX在 attrs 数据类中有一个 TypedDict Example,其中 mypy 抱怨从getdict()我的类的方法返回的类型,即使声明了返回类型:

mypy 抱怨error: Incompatible return value type (got "DictWithOnlyX", expected "DictWithOnlyX")

具有讽刺意味的是,当通过声明的类型来解决 mypy 问题时,attrib()我得到了另一个 mypy 错误 - 打个痣!

mypy 抱怨error: Incompatible types in assignment (expression has type "DictWithOnlyX", variable has type "DictWithOnlyX")

上述代码的两个版本都运行良好。蟒蛇 3.7.5。

两条错误消息都很神秘,因为它们看起来自相矛盾——(据报道)相同的类型怎么可能是“不兼容的”?

0 投票
1 回答
781 浏览

python - PyCharm 文档字符串中未解决的属性引用问题

当我使用attrs库创建类时, PyCharm 中的文档字符串显示 linting error unresolved attribute reference

另一方面,当我通常使用__init__方法创建类时。它没有显示这样的错误。

我无法弄清楚这个错误是由于attrsPyCharm 产生的,因为attrs默认情况下,mypy 类型检查具有所有必要的存根。使用attrs时,除了这次在文档字符串中,我找不到任何 linting 错误。

Linting 错误如下图所示——

在此处输入图像描述

任何帮助,将不胜感激。

0 投票
1 回答
403 浏览

python - attr.asdict(x) 和 x.__dict__ 有什么区别?

在 Python 中,当你想要你的attrs__dict__ -enhanced 类的属性的字典时,使用和有什么区别attr.asdict()?你应该使用哪一个?例如,在此示例中,它们具有相同的结果:

0 投票
1 回答
56 浏览

python-3.x - 是否可以根据计算属性使 Attrs 类具有可比性?

我正在使用 Python3.7 为我的项目实现一个简单的负载均衡器。

我使用 aqueue.PriorityQueue来保存一组预定义的工人。工人在队列中的顺序由他们的每个负载定义,该负载是根据分配给工人的作业数量来评估的。也就是说,有一个jobs属性是 Job 实例的列表,并且加载是由jobs.

作业分配的每次迭代,通过检索负载最低(作业数量最少)的工人,queue.get()分配后,它将put回到队列中。

这是简化的片段。

我知道如果我自己添加那些用于比较的 dunder 方法,即__ne____lt__、和__le__,我可以实现这一点。__gt____ge__

但我的问题是,是否可以attrs根据计算属性使一个类具有可比性?如果可能的话,如何做到这一点?

0 投票
1 回答
108 浏览

python-attrs - 大致比较用`attrs`定义的类的十进制属性

我有一个Thing带有浮点x属性的类。我想大致比较两个Thing相对容差为 1e-5 的实例。

我是否需要覆盖该__eq__方法,或者是否有一种干净的方式来告诉attr使用math.isclose()或自定义比较功能?

0 投票
1 回答
525 浏览

python - 使用其他值转换 python attr.ib

我正在使用 attrs 库为路径创建数据结构。我希望第一个属性是其他自动加入的根目录。我想要这样的东西:

这可以解决问题,但converter函数只给出一个参数。是否有一种干净的方法可以在验证之前使用其他属性转换值?需要三个参数(其中validator一个是对象),但它不是转换值的正确位置。将所有内容都投入其中也__attrs_post_init__违背了使用 attrs 的目的。

0 投票
1 回答
1449 浏览

python - mypy 无法识别 attrs:无法确定“s”的类型

我需要安装其他东西以获得attrs支持吗?

0 投票
3 回答
818 浏览

python - 如何在 python-attrs 类中忽略额外的 kwargs

例如:

上面的代码会抛出错误,因为类Foo没有battr。但我想丢弃传递b的值,就像我刚刚调用f = Foo(a=1). 在我的用例中,我有动态 dict(我想将其转换为 attr-class),我根本不需要一些键。

0 投票
3 回答
1134 浏览

jupyter-notebook - 启动 Jupyter Notebook 时出错 - @attr.s(hash=True) AttributeError: module 'attr' has no attribute 's'

我无法启动或打开 Jupyter Notebook。我已经多次卸载并安装它,仍然得到我粘贴在下面的相同错误!

它给出了一些“属性错误”。

请帮忙!