@rudepython

Страница 780 из 1719
Alexey
15.01.2018
09:36:56
А, сайд чисто. Не фича.

Zart
15.01.2018
09:37:07
в итоге это формализовали в фичу

Google
Zart
15.01.2018
09:38:26
в общем насколько я понимаю ситуацию, то 1) дикт в питоне не будет гарантировать это свойство в будущем. в 3.6-3.7 работает, но это до очередной правки дикта 2) сохранение порядка дикта или его аналога при передаче аргументов в метакласс теперь гарантируется

Alexey
15.01.2018
09:39:05
Второе не совсем понял. :-\

1. Жалко. Хотя это и не питоник вей. Хочешь ордеред — юзай ордеред.

Zart
15.01.2018
09:39:53
напоминаю сигнатуру тайп: type(name: str, bases: Tuple(str), members: dict)

Alexey
15.01.2018
09:40:06
Это да.

Zart
15.01.2018
09:40:54
т.е. питон видит class Foo(Bar): a = 1 def foo(...) ... и конвертирует это в type('Foo', (Bar, object), {'a': 1, 'foo': <foo>})

как видно тут есть проблема

Alexey
15.01.2018
09:41:33
Да, конечно.

Zart
15.01.2018
09:41:41
class Model(AnotherORM): f1 = Field() f2 = Field()

Alexey
15.01.2018
09:41:54
филды вычисляются и идут в дикт.

Zart
15.01.2018
09:41:57
тебе не гарантируется что в дикте прилетит в том же порядке что в соусе

Маришка
15.01.2018
09:41:58


Zart
15.01.2018
09:42:09
народ в двойке это вроде обойти не мог

Google
Zart
15.01.2018
09:42:19
в тройке это пофиксили парой способов

сперва добавили новый магический аттрибут

потом с появлением новых диктов - требованием оных

http://legacy.python.org/dev/peps/pep-0520/

хм.. драфт пока

Alexey
15.01.2018
09:43:30
Спасибо за ликбез, сенсей, пойду читать.



Zart
15.01.2018
09:43:53
Currently the namespace used during execution of a class body defaults to dict. If the metaclass defines prepare() then the result of calling it is used. Thus, before this PEP, if you needed your class definition namespace to be OrderedDict you had to use a metaclass.

Alexey
15.01.2018
09:44:04
if you needed your class definition namespace to be OrderedDict you had to use a metaclass. — хм.

Zart
15.01.2018
09:44:08
возможно это еще в два вводили, я особо в метаклассы не лазил, так что хз

Alexey
15.01.2018
09:44:32
Ну да, метаклассы это такая магия, на любителя. Для научного интересна ещё да.

Маришка
15.01.2018
09:44:37
Нужно посмотреть

Zart
15.01.2018
09:44:39
проверки типов сам питон делать никогда не будет. только левые прибамбасы

Маришка
15.01.2018
09:45:09
проверки типов сам питон делать никогда не будет. только левые прибамбасы
Ну энто же 3.7, плюс декоратор @dataclass хрен знает чё делает

Alexey
15.01.2018
09:45:11
Ему чо жалко что ли? У него всё равно на каждый метод прилеплена же сигнатура полная теперь.

Павел
15.01.2018
09:45:12
пайчарм подсветит если не тот тип)

Zart
15.01.2018
09:45:26
ну. это и есть левая тулза

Alexey
15.01.2018
09:45:28
пайчарм подсветит если не тот тип)
Да на хуй он всрался, мне в рантайме надо, чтобы по рукам било и током ебошило. :)

Google
Маришка
15.01.2018
09:45:51
ну. это и есть левая тулза
Энто в стд 3.7 вчера обсуждали в рупитон

Zart
15.01.2018
09:46:07
кто такое хочет мог еще с 2.2 z.i юзать с z.i.v

Alexey
15.01.2018
09:46:10
намути свой декоратор
Я свои декораторы с 2.5 втыкаю для такой хуйни. Но это костыли.

Павел
15.01.2018
09:46:22
чо поделать

Alexey
15.01.2018
09:46:32
Сделать питон 4.0 со стрикт модом.

Zart
15.01.2018
09:46:33
Alexey
15.01.2018
09:46:44
http://zopeinterface.readthedocs.io/en/latest/verify.html
Ну, в вашей зопе вообще всё уже придумано давно, это я привык.

Zart
15.01.2018
09:46:58
эт в жабе придумано давно

а туда так, завоз

Jentry
15.01.2018
09:50:48
Да на хуй он всрался, мне в рантайме надо, чтобы по рукам било и током ебошило. :)
жестокие меры у тебя, для начала достаточно в пайчарме)

Alexey
15.01.2018
09:51:19
Jentry
15.01.2018
09:51:42
плюсану за зопу, но зопа это слегка не о том, там же проверка на имплементацию интерфейса, но не типов данных

Alexey
15.01.2018
09:51:43
Сделай форк своего питона StrictPython
Из меня хуёвый откровенно сишник, я не умею в высшие материи, это учиться надо и учиться с головой, а не по распиздяйски как на питонах можно.

Да говно плодить — зачем интернеты засорять? И так уже засрано — мочи нет.

Zart
15.01.2018
10:10:12
хм

It seems like the memory usage is between 20% and 25% smaller. Great job! Memory usage, Python 3.5 => Python 3.6 on Linux x86_64: ./python -c 'import sys; print(sys.getsizeof({str(i):i for i in range(10)}))' * 10 items: 480 B => 384 B (-20%) * 100 items: 6240 B => 4720 B (-24%) * 1000 items: 49248 B => 36984 B (-25%)

As I expected, a dictionary lookup is a _little bit_ slower (3%) between Python 3.5 and Python 3.6: $ ./python -m perf timeit -s 'd={str(i):i for i in range(100)}' 'd["10"]; d["20"]; d["30"]; d["40"]; d["50"]; d["10"]; d["20"]; d["30"]; d["40"]; d["50"]' —rigorous Median +- std dev: [lookup35] 309 ns +- 10 ns -> [lookup36] 320 ns +- 8 ns: 1.03x slower

3% slowdown in microbench is not surprising. Compact dict introduces one additional indirection. Instead, I've added freelist for most compact PyDictKeys. So I think overall performance is almost same to before compact dict.

Google
Alexey
15.01.2018
10:11:09
Да и хуй с ним, 25% объёма и 3% скорости — вообще суперок.

Zart
15.01.2018
10:11:39
главный профит был в памяти в общем

25% это просто заебись, учитывая что питон весь из диктов

Alexey
15.01.2018
10:12:28
Да.

Полностью и целиком.

insanemainfame
15.01.2018
10:32:51
а какие есть решения для отображения трейсбэков для веба, кроме https://github.com/Eugeny/catcher ?

Eugine
15.01.2018
10:34:52
использовать php

Alexey
15.01.2018
10:35:13
Там да, божественные ошибки.

Eugine
15.01.2018
10:35:45
и, что самое главное, их всегда будет много

Zart
15.01.2018
10:35:53
это не переплюнуть

insanemainfame
15.01.2018
10:36:15
как говорил мой давнишний упоротый начальник В ПХП ПЯТИСОТЫХ НЕТ

не то что в вашем питоне

Alexey
15.01.2018
10:36:22
В перле полно лол.

Eugine
15.01.2018
10:37:11
"нет кода - нет ошибок"

если у вас нет сервиса, его не уронит сосед, если у вас нет мозга, у вас и печалей нет.

Alexey
15.01.2018
10:38:53
Ритм сломал.

insanemainfame
15.01.2018
10:41:32
catcher уже не заводится, пороюсь в джанге, может оттуда можно вытащить, все равно под боком крутится?

там какой-то пиздец?

luchezar
15.01.2018
11:03:03
"нет кода - нет ошибок"
Зачем. Есть же три волшебных слова решающие проблемы с ошибками

Google
luchezar
15.01.2018
11:03:05
try:

except:

pass

Eugine
15.01.2018
11:03:22
try:

except:

Alexey
15.01.2018
11:03:35
try: except BaseException:

Eugine
15.01.2018
11:03:43
плохо

все очень плохо

Jentry
15.01.2018
11:05:06
Зачем. Есть же три волшебных слова решающие проблемы с ошибками
После таких слов следом можно заявление на увольнение писать)

Eugine
15.01.2018
11:05:29
можно от его имени послать

luchezar
15.01.2018
11:05:40
=D

Alexey
15.01.2018
11:05:54
Сразу бежать оттуда. Спиной вперёд.

Alex
15.01.2018
11:06:55
try: except BaseException:
не-не-не.. Вот как надо: try: # Do something here except Exception as e: print(f"https://stackoverflow.com/search?q={e}")

Alexey
15.01.2018
11:07:18
Принты отстой. Зартовский пример — бест.

Alex
15.01.2018
11:07:28
ну и file=sys.stderr можно

а, ну вот. только там же JS.

Alexey
15.01.2018
11:08:26
Чо как слабака? А ну давай в браузере на питоне редирект!

Zart
15.01.2018
11:09:11
with contextlib.suppress(BaseException): # fuck all

Страница 780 из 1719