
GNU/Docker
29.12.2016
14:22:48
я так понимаю эти аннотации просто разрешены синтаксически?
тайпчекинг и прочее как обычно отдано как соглашения, как это принято в сипайтон.
да?

Dmitry
29.12.2016
14:23:58
угу. IDE будет разруливать

Google

GNU/Docker
29.12.2016
14:24:05
мда
и типы можно вывести только там где они зааннотированы
то есть стдлиб идёт нафиг.
и я могу проверить только собственный факториал
верно?

Dmitry
29.12.2016
14:26:01
ну некоторые IDE-шки уже пытаются выводить типы... но бывает что не очень получается
а тут ты типа подсказываешь

GNU/Docker
29.12.2016
14:26:18
уверен в этом.
когда у тебя функция возвращает None или что-то ещё, например.
как проверить сложение с чем-то, да?)
Не выполняя код.
Потому что это аннотации
и типы не у переменных

Google

GNU/Docker
29.12.2016
14:27:13
а у значений.
{"key": value_object}.get("key", False)
как с таким работать
@delimitry где аннотации применять вообще?

Dmitry
29.12.2016
14:29:23
пишешь такой : Any)))

GNU/Docker
29.12.2016
14:29:26
Где это может помочь.
Лол
збс
Хочу auto )
и чтобы типы выводились.

Dmitry
29.12.2016
14:31:05

GNU/Docker
29.12.2016
14:31:37
Я попытался применить их в трансляторе асма простенького.
Чёт тоже так себе.
Правда предыдущие
тайп аннотейшнс для функций.
громоздко и отвратительно получилось.

Zart
29.12.2016
14:33:12
>>> def foo():
... X: anyshit = object
... return X
...
>>> foo()
<class 'object'>
meh...

Dmitry
29.12.2016
14:35:52
It should also be emphasized that Python will remain a dynamically typed language, and the authors have no desire to ever make type hints mandatory, even by convention.

Zart
29.12.2016
14:36:25
и я чота не понял, это было фичей 3.5го

Google

Dmitry
29.12.2016
14:36:47
так тут для переменных
а не для функций

Zart
29.12.2016
14:37:11
и?
это всё равно было в 3.5
Status: Accepted
Type: Standards Track
Created: 29-Sep-2014
Python-Version: 3.5

Dmitry
29.12.2016
14:38:51
У меня в 3.5
>>> a: str = '123'
File "<stdin>", line 1
a: str = '123'
^
SyntaxError: invalid syntax

Zart
29.12.2016
14:39:01
гм. угу..
ошибка в пепе или куда

Dmitry
29.12.2016
14:39:34
Это PEP-0526

Zart
29.12.2016
14:39:45
а я на 484й смотрю

Dmitry
29.12.2016
14:39:53
да этот в 3.5 был ага

Zart
29.12.2016
14:40:27
а, типы. то что после стрелок и двоеточий, хм

Eugene
29.12.2016
17:10:26
Ну, мне кажется, что это всяко лучше чем описывать тип в комментарии для переменных как предлагается в PyCharm для < 3.6. Без знания типа ведь никакой автокомплит нормально работать не будет, а без нормального автокомплита только hello world можно написать с современными библиотеками.
Ещё очень полезно, когда IDE показывает, что в функции переменная используется, скажем, как строка, а ты запихал туда число. И после вот такого мне смешно читать или спорить на тему "Я в блокноте код пишу и нормально всё!"

Serge
29.12.2016
18:07:15

Eugene
29.12.2016
18:08:17
А что mypy? Запускать его каждый раз для прогона кода? Оно же вроде как вещь в себе, ни в какую IDE его не встроишь.

Serge
29.12.2016
18:09:23

Zart
29.12.2016
18:11:22
а что делать если функции пофиг на тип входных данных, пока оно крякает?

GNU/Docker
29.12.2016
18:11:48
Делать тайпкласс.

Serge
29.12.2016
18:11:52

Google

GNU/Docker
29.12.2016
18:11:53
и указывать его

Zart
29.12.2016
18:12:00
в 99% мне насрать на тип, меня волнует интерфейс/контракт

Eugene
29.12.2016
18:12:08

Zart
29.12.2016
18:12:17
абц не хотеть

Serge
29.12.2016
18:12:19

Eugene
29.12.2016
18:12:34

GNU/Docker
29.12.2016
18:12:49
Это как еще?

Serge
29.12.2016
18:13:04
Нетипизированный контакт - зло больше, чем неявная типизация

Zart
29.12.2016
18:13:20

Admin
ERROR: S client not available

GNU/Docker
29.12.2016
18:13:48
сходить в будущее и сказать въёбло в рантайме или нет.

Zart
29.12.2016
18:13:49
туда реально можно скормить примерно что угодно

Eugene
29.12.2016
18:14:01
для этого и надознать типы a и b, чтобы знать, что они должны уметь складываться

GNU/Docker
29.12.2016
18:14:02
нет других вариантов.
и вывода типов нет
потому что системы типов нет
ну то есть
вы понели

Serge
29.12.2016
18:14:25

Zart
29.12.2016
18:15:06
т.е. при пишем add( и оно должно выдать список всего, что содержит __add__ и __iadd__ ?

Google

Zart
29.12.2016
18:15:25
если оно в такое научится - это будет магией

Serge
29.12.2016
18:15:50
Короче, есть кейсы, когда оно мешает, тогда тесты, но в 80% кода, на самом деле, типы данных известны.
Вы лучше скажите, в 3.6 magic.io стало ближе или пока нет?
Я про uvloop под asyncio
Они же вроде грозились притащить его в батарейки чуть ли ни целиком

Zart
29.12.2016
18:21:37
а я правильно помню что ювлуп - это ноды кусок?

Serge
29.12.2016
18:23:37

Zart
29.12.2016
18:24:50
да я не против, там кошерный IOCP же

Alex
29.12.2016
18:24:58
Привет всем!
О опять про типы

Serge
29.12.2016
18:25:24
Я вот сейчас на Go пишу утилиту по работе... Ну вы пони ?

Alex
29.12.2016
18:25:47
го это хорошо
в проце(типов нет)
остальное все пройдет
одни договоренности

Serge
29.12.2016
18:26:59
Python с uvloop и mypy - это Go с эксепшенами и нормальным ооп, но хреновым gc

Alex
29.12.2016
18:27:35
приятно конечно ловить ощибки в процессе компиляции