Size: a a a

2021 March 03

N

Nikolay in Moscow Python
источник

MD

Mike Drepin in Moscow Python
TypeError: Object of type dict_values is not JSON serializable
Так, ну это не итератор. Наверное есть какой-то клёвый модный доп.интерфейс. Надо проверить. А то и PR запилить. Ну ка сейчас разберемся, сейчас будет клёво

static PyObject *
dict_values(PyDictObject *mp)
{
   PyObject *v;
   ....
    v = PyList_New(n);
   ....
    return v;
}
источник

MD

Mike Drepin in Moscow Python
Ну вот нахера так делать? бесит. БЕСИТ.
источник

MD

Mike Drepin in Moscow Python
чёт всё желание пилить PR пропало >_<
источник

N

Nikolay in Moscow Python
Mike Drepin
TypeError: Object of type dict_values is not JSON serializable
Так, ну это не итератор. Наверное есть какой-то клёвый модный доп.интерфейс. Надо проверить. А то и PR запилить. Ну ка сейчас разберемся, сейчас будет клёво

static PyObject *
dict_values(PyDictObject *mp)
{
   PyObject *v;
   ....
    v = PyList_New(n);
   ....
    return v;
}
погоди, там же, вроде, был view, а не list?
источник

MD

Mike Drepin in Moscow Python
check it out
источник

N

Nikolay in Moscow Python
чот странное
источник

AS

Alexey Starkov in Moscow Python
там view просто внутри делается лист, пока не понял твою боль
источник

PB

Pete Bystrov in Moscow Python
Mike Drepin
TypeError: Object of type dict_values is not JSON serializable
Так, ну это не итератор. Наверное есть какой-то клёвый модный доп.интерфейс. Надо проверить. А то и PR запилить. Ну ка сейчас разберемся, сейчас будет клёво

static PyObject *
dict_values(PyDictObject *mp)
{
   PyObject *v;
   ....
    v = PyList_New(n);
   ....
    return v;
}
угу. Когда байтовая строка оказалась не JSON serializable, захотелось посмотреть питоноразрабам в глаза. В каждый по очереди.
источник

MD

Mike Drepin in Moscow Python
Alexey Starkov
там view просто внутри делается лист, пока не понял твою боль
ради чего ломать пол мира, если под капотом всё равно list?
источник

AS

Alexey Starkov in Moscow Python
инкапсуляция, сегрегация интерфейсов и прочий солид
источник

AS

Alexey Starkov in Moscow Python
недьзя вернуть лист, потому что values это immutable view/лист это деталь реализации, а не абстракция, соответственно создает излишнее связывание
источник

MD

Mike Drepin in Moscow Python
Alexey Starkov
инкапсуляция, сегрегация интерфейсов и прочий солид
search: dict_values. объявление, два теста и анонс в abc. А где же всё перечисленное?
источник

MD

Mike Drepin in Moscow Python
Alexey Starkov
недьзя вернуть лист, потому что values это immutable view/лист это деталь реализации, а не абстракция, соответственно создает излишнее связывание
Почему в случае 'ababababab'.split('a') лист хорошо, а dict.values() обязательно нужен immutable view?
источник

AS

Alexey Starkov in Moscow Python
Mike Drepin
search: dict_values. объявление, два теста и анонс в abc. А где же всё перечисленное?
источник

AS

Alexey Starkov in Moscow Python
Mike Drepin
Почему в случае 'ababababab'.split('a') лист хорошо, а dict.values() обязательно нужен immutable view?
потому что строки иммутабельные и нам не нужен view для них
источник

AS

Alexey Starkov in Moscow Python
вообще про это есть целый пеп, там все что ты ищешь :)
https://www.python.org/dev/peps/pep-3106/
источник

MD

Mike Drepin in Moscow Python
Зачем заводить целый новый базовый тип данных, почему нельзя отнаследоваться от list и подругому его назвать?
источник

AS

Alexey Starkov in Moscow Python
Mike Drepin
Зачем заводить целый новый базовый тип данных, почему нельзя отнаследоваться от list и подругому его назвать?
нарушет LSP опять же, потому что это не list
источник

MD

Mike Drepin in Moscow Python
Alexey Starkov
нарушет LSP опять же, потому что это не list
Historically, Python has a really poor track record of specifying the semantics of highly optimized built-in types clearly in such cases; my strawman is to continue that trend. (с) Guido in PeP
источник