![](/img/trans.png)
[英]cattrs.structure with nested dictionaries and attrs.define( converter=foo )
我在將包含無效數據的字典結構化為@attrs.define裝飾類時遇到問題,但應該使用attrs.define轉換器處理。 我已經設法讓它與Foo( **dct )一起工作,它確實為每個屬性調用轉換器,但是當使用cattrs.structure( dct, Foo )或cattrs.Convert ...
[英]cattrs.structure with nested dictionaries and attrs.define( converter=foo )
我在將包含無效數據的字典結構化為@attrs.define裝飾類時遇到問題,但應該使用attrs.define轉換器處理。 我已經設法讓它與Foo( **dct )一起工作,它確實為每個屬性調用轉換器,但是當使用cattrs.structure( dct, Foo )或cattrs.Convert ...
[英]python attrs inherited field value gets overwritten
我有一些繼承自基類attrs的屬性類。父類 class 有一個字段也是屬性 class。 如果我實例化子類的兩個實例並設置公共繼承字段的子字段,則另一個實例的字段也會被覆蓋。 我可以通過使用該字段的factory來使用partial (方法 3)指定所需的默認值來解決此問題。 看起來,使用方法 1 ...
[英]How to customize attrs field hash
我想使用 Numpy 數組作為字段值,同時保持我的屬性attrs可哈希。 為此,我發現joblib 的hash() function 是散列 Numpy arrays 的好方法。是否有可能繼續使用attrs的默認值 hash function,同時手動指定如何使用每個字段,例如 883518822 ...
[英]How to annotate attrs field with validator?
我在注釋 attrs class 屬性時遇到問題。 我正在使用 NewType 來定義新的 UserId 類型和屬性凍結類。 這是 mypy 沒有抱怨的代碼,一切正常: mypy 檢查此代碼時沒有任何問題。 使用來自 attrs 的驗證器后出現問題。 mypy 現在抱怨不正確的類型: pro ...
[英]Using cattrs / attrs where attr name does not match keys to create an object
我正在考慮從輸入所有類的完全手動過程轉移到 cattrs / attrs,但需要一些幫助來理解如何實現以下目標。 這是一個示例,但返回的數據會有所不同,有時不會填充所有字段。 因此,我了解您將如何構建它,並且它與預期的 1:1 映射完美配合,但是您將如何動態創建 PartialUser 對象,因為 ...
[英]Is there an easy way to construct a pandas DataFrame from an Iterable of attrs objects?
可以像這樣使用dataclass es 做到這一點: 這使得DataFrame df具有預期的i和s列。 有沒有一種簡單的方法可以使用attrs class 來做到這一點? 我可以通過遍歷對象的屬性並構建 object 類型的dict[str, list] ( {"i": [1, 2], "s": ...
[英]How to override an attrs class instance with another one when the values are not None
我的目標是能夠合並相同attrs class 的多個實例並跳過“無”值。 這允許我創建默認值,然后在需要時覆蓋它們。 預期代碼的示例-from attr import attrs @attrs(auto_attribs=True) class A: a: int = None b: ...
[英]Define custom atrributes in attr module
我正在尋找可以根據需要定義 class 屬性的方法。 例如,我嘗試過這種方式:@attrs.define class MyClass: pass MyClass(a=1, b=2) 但收到 TypeError: 是否有可能實現我想要的? ...
[英]Correct mro order attrs object can't find abstract property
以下運行良好: 在這里, C有一個從B繼承的 function prop ,該道具在 MRO 訂單中首先找到,因此A不會抱怨它的存在。 我也用dataclass試過這個: 但是,這不適用於attr : 運行它: 我正在使用的代碼庫已經標准化了attr的使用,所以如果可能的話,我想繼續使用attr 。 ...
[英]How can I specify order of fields in Attrs?
取自attrs示例here,但添加group_id & name 。 我想創建數據類,然后我可以使用json.dump()將它們導出到 JSON 。 打印出這個: 但是,我的問題是我希望group-id位於最頂部,並且name是列表中的第一個。 像這樣的東西: 似乎attrs在初始化時組織 ...
[英]frozen dataclass in def __init__ and iteration on it
我想使用凍結的 class 作為結構,因為我不想在我的代碼中使用任何可變對象。 但我也需要迭代my_data 。 我怎樣才能使這項工作? 旁注:dict 不是一個選項 當然,我遇到了一個錯誤 ...
[英]Passing parameters to frozen super dataclass
我有一個簡單的(凍結的)數據類 inheritance 如下: 根據文檔,它看起來很有希望: attrs_pre_init會在 attrs 開始初始化之前自動檢測並運行。 如果您需要注入對 super() 的調用,這很有用。 初始化() 但是當我檢查mypy時,我得到: 請注意,這不是this的副 ...
[英]Attribute Converter in attr.s-based hydra Structured Configs
是否可以在基於attr.s的hydra結構的配置中使用轉換器。 我用這個最小的例子試了一下:import hydra from hydra.core.config_store import ConfigStore import attr @attr.s class Times10Config: ...
[英]How do I annotate an `attrs` validator function without breaking it?
使用 attrs 庫,我可以為屬性值定義一個驗證器: Foo(1)實例化成功,而Foo(2)實例化失敗並出現ValueError ,如預期的那樣。 不出所料,這段代碼不進行類型檢查(根據mypy --strict ): 但是,我不知道如何注釋它以便它這樣做。 天真的第一次嘗試可能看起來像: 但是 ...
[英]frozen data class with non trivial constructor
我正在嘗試使用非平凡的構造函數定義一個凍結的數據類 也就是說,構造函數需要在初始化相應的數據成員之前“調整”輸入: 當我檢查文檔時,我看到了 如果一個類被凍結,你不能在attrs_post_init或一個自寫的init中修改 self。 您可以通過使用對象來規避該限制。 setat ...
[英]Correct backwards-compatible way to migrate to modern attrs/cattrs style?
問題 我有一組項目,我從 2020 年初開始使用 attrs v19.3.0 和 cattrs 進行序列化/反序列化。 將這些項目中的類從舊的@attr.s / attr.ib樣式遷移到帶有@define和@frozen的現代樣式的正確、完全向后兼容的方法是什么? 問題說明 我的假設是我可以混合和 ...
[英]Python attrs: Inheriting from class which values have default values raises error
我有一種情況,其中 attrs 類繼承自另一個屬性具有默認值的類。 這會引發 ValueError。 這是一個例子: 我該如何避免這種行為? ...
[英]Create a customer converter and validator using ATTRS
我正在嘗試學習 attrs,我有兩個問題。 請注意,我使用的是 ATTRS 庫,而不是 ATTR。 如何創建轉換器以將 typ 更改為大寫? ---> 我解決了這個問題。 下面的公式已更新。 :) 如何創建驗證器以確保 typ 包含在列表中? 我在兩者上都嘗試了很多東西,但無濟於事。 該文 ...
[英]Why can I not add attributes to an attrs object?
考慮這個例子: 這失敗了一個例外: AttributeError: 'A' object 沒有屬性 'field'。 為什么我不能將字段添加到 attrs object? 當然請注意,這在刪除 attrs 裝飾器時確實有效。 ...
[英]With Python's attrs, is it possible to remove leading underscores from the generated __repr__
在我使用 attrs 的項目中,我定義了一些帶有前導下划線的字段,以便我可以創建一個同名的屬性減去前導下划線。 我這樣做是因為我在設置值時向 setter 方法添加了一些簡單的邏輯(非常重要)。 我想知道是否有辦法從__repr__中刪除前導下划線。 經過一些谷歌搜索后我找不到任何關於這個的信息,所 ...