Описание тега python-attrs
Используйте для вопросов о сторонней библиотеке Python для классов данных
1
ответ
Как использовать attr.validators.optional
В соответствии с документацией attrs необязательные атрибуты должны быть объявлены следующим образом: >>> @attr.s ... class C(object): ... x = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(int))) >>> C(42) …
07 фев '19 в 09:28
2
ответа
Управление порядком аргументов в init производного класса, определенного с помощью attrs
В attrs порядок аргументов генерируемого init Метод определяется порядком определения атрибута в классе + MRO (стандартный способ определения общего порядка на основе множественных отношений наследования). Это не очень хорошо для моего случая исполь…
20 сен '18 в 17:11
0
ответов
Как выбрать некоторые ключи, чтобы диктовать связанные с ними атрибуты?
Я просматриваю эту документацию библиотеки под названием related, которая основана на attrs lib. Я наткнулся на эту функцию в attrs asdict с фильтром. @attr.s class UserList(object): users = attr.ib() @attr.s class User(object): email = attr.ib() pa…
24 фев '19 в 15:37
11
ответов
Как избежать шаблона "self.x = x; self.y = y; self.z = z" в __init__?
Я вижу такие шаблоны, как def __init__(self, x, y, z): ... self.x = x self.y = y self.z = z ... довольно часто, часто с гораздо большим количеством параметров. Есть ли хороший способ избежать такого утомительного повторения? Должен ли класс наследов…
04 фев '16 в 01:22
2
ответа
Как сделать класс attrs с распаковкой кортежей и dict, но без дополнительных методов
Я только начал использовать attrs модуль для Python, который довольно гладкий (или аналогично мы могли бы использовать Python 3.7 DataClasses). Обычный шаблон использования, который у меня есть, заключается в том, чтобы класс был контейнером для зна…
29 авг '18 в 14:24
1
ответ
Как выбрать функции класса python-attrs через cloudpickle?
Я использую Cloudpickle для передачи функций, и я хотел бы передать attrs функция класса с помощью Cloudpickle. import pickle import attr @attr.s(auto_attribs=True) class myclass: an_int: int a_str: str a_float: float def myfunc(self): return f"{sel…
30 окт '18 в 21:56
1
ответ
Получить имя атрибута при исключении в конвертере
Когда в валидаторе произошла ошибка, можно добавить имя ошибочного атрибута в сообщение об ошибке, потому что это имя передано валидатору. Но если в конвертере произошла ошибка, я не вижу способа получить имя атрибута с ошибкой, например @attr.s cla…
10 янв '19 в 09:47
1
ответ
Пропали безрассудства для типа списка в attrs.asdict()?
Я пытался создать вложение list() класс с использованием Python attrs декораторы, и заметил, что attrs.asdict() не работал на каком-то уровне subvariables. Такой что: attrs.asdict(mlle) отображается нормально attrs.asdict(mlle.list_of_list_of_elemen…
22 янв '19 в 22:01
1
ответ
Python Attrs Trigger Converter при установленном атрибуте
При использовании python-attrs, каков хороший способ вызвать конвертер при установке атрибута. EX: @attr.s class A(object): b = attr.ib(converter=str) >>> A(b=1) A(b='1') >>> a = A(b=1) >>> a.b '1' >>> a.b = 2 >…
24 май '18 в 17:01
0
ответов
mypy attrs и дженерики
Я сталкиваюсь с ошибкой mypy, когда пытаюсь наложить ограничения на TypeVar, когда он используется в определении класса attrs, который наследуется от Generic. Вот пример класса DeviceModes = TypeVar('DeviceModes', str, int) @attrs class Test(Generic…
31 май '18 в 16:47
2
ответа
Динамически определять атрибуты, которые зависят от ранее определенных атрибутов
Я хочу объект, который представляет путь root и произвольное количество подкаталогов, которые построены с os.path.join(root), Я хочу получить доступ к этим путям с помощью формы self.root, self.path_a, self.path_bи т.д... В дополнение к доступу к ни…
14 ноя '18 в 22:12
1
ответ
Использование attr.asdict() фильтра с вызываемым
Я пытаюсь создать метод в моем классе, который будет возвращать только публичные свойства как dict. Я борюсь с синтаксисом. Вот что я безуспешно пытался: @attr.s class C: x = attr.ib() _y = attr.ib() def _no_privates(a, _): return not a.name.startsw…
07 июл '18 в 13:33
1
ответ
Запускать валидатор атрибута только после окончания __attrs_post_init__
Я имею: @attr.s class Example: number = attr.ib(validator=attr.validators.instance_of(int), init=False) def __attrs_post_init__(self): self.number = 'string' print('It seems, validation was running before:(') t = Example() Как правильно настроить ва…
13 окт '17 в 12:38
0
ответов
Динамически обновлять абстрактный метод
Я пытаюсь динамически создать Callable класс, который оборачивает функцию, которая сохраняет kwargs используя attrs. Я не пользуюсь functools.partial поскольку call Метод будет более сложным. Проблема в том, что __call__ метод остается абстрактным в…
22 авг '18 в 18:43
1
ответ
Когда и почему я должен использовать attr.Factory?
Когда и почему я должен использовать attr.ib(default=attr.Factory(list)) над attr.ib(default=[])? Из документации я вижу, что Factory используется для генерации нового значения, что имеет смысл, если вы используете лямбда-выражение с входными данным…
23 май '17 в 17:11
1
ответ
Насмешливые значения по умолчанию attr.ib()
У меня ситуация похожа на следующую @attrs(auto_attribs=True) class ExampleClass: _prop: OtherClass = attrib(init=False, default=OtherClass()) def some_func(self): test_var = OtherClass() test_var.some_func() self._prop.some_func() class OtherClass:…
19 май '18 в 13:30
1
ответ
Подсказка Pycharm на подкласс с использованием attrs
Pycharm жалуется на неожиданный аргумент в пользу экземпляра MyClass. Это можно обойти? import attr @attr.s class _Super: """ My Super class""" x: str = attr.ib(validator=attr.validators.instance_of(str)) @attr.s class MyClass(_Super): """ My Sub cl…
17 сен '18 в 02:16
1
ответ
Как указать аргумент __init__, который не является атрибутом класса
С помощью attrs я могу указать аргумент init, который не является атрибутом класса. например, объекту CRC8 может быть передано несколько байтов или байтов в массиве конструктора, но я не хочу сохранять эти входные данные, просто вычислю CRC и сохран…
03 июн '18 в 04:08
8
ответов
Используйте Python для создания JSON
Я хочу использовать Python для создания JSON. Поскольку я не нашел никакой библиотеки, которая могла бы мне помочь, я хочу знать, возможно ли проверить порядок классов в файле Python? пример # example.py class Foo: pass class Bar: pass Если я импорт…
01 дек '16 в 09:30
1
ответ
Как указать, что атрибут должен быть списком (скажем) целых чисел, а не просто списком?
Используя библиотеки attrs и Python 3.6, я подумал, что следующее позволит мне указать, что x а также y может содержать только целые числа: import attr @attr.s class C: x : List[int] = attr.ib() # not working y = attr.ib(type=List[int]) # not workin…
25 мар '18 в 04:47