@spbpython

Страница 147 из 785
Roman
23.09.2016
21:32:02
Друзья, у вас очень активный чат, может подскажите немного не по теме, где можно найти хорошего golang разработчика?

Serge
23.09.2016
21:32:35
SPbLUG: "Мечтают ли go-программы о балансере?" by Даниил Подольский 28/09/2016 https://telegram.me/spblug

Там, кстати, на ближайшей встрече будет про go

Google
Serge
23.09.2016
21:33:30
А ещё там есть пара человек, которые лучше ответят на твой оригинальный вопрос

Ну и ты поймёшь, что у нас чатик по теме и весьма тихий

В четверг пьём пиво. http://meetu.ps/e/BZj5S/5nHxd/d

Roman
23.09.2016
21:36:45
Пиво будет?

Serge
23.09.2016
21:37:17
Пиво будет?
Купишь, будет

Roman
23.09.2016
21:49:36
Спасибо!

Serge
23.09.2016
22:45:24
https://teespring.com/stores/spb-python-interest-group?from=tlgrm

Теперь еще один вид футболок и кружки

Eugene
24.09.2016
05:43:09
должно быть очевидно что обёртки вокруг системных функций могут вернуть сабклассы OSError функции, осуществляющие ввод/вывод могут кинуть сабклассы IOError. поэтому обычно и юзают except (OSError, IOError) для покрытия самых вероятных сбоев...
Ничего не должно быть очевидно, если это явно не прописано в документации. В Windows, например, не OSError, а WindowsError, поэтмоу ваш код except (OSError, IOError) на винде сломается. Это вам очевидно?

Eugene
24.09.2016
05:43:48
Неа

Google
Serge
24.09.2016
05:44:45
Вижу OSError.

Eugene
24.09.2016
05:45:08
ConnectionError, да, кстати

Serge
24.09.2016
05:45:37
Видно, что на винде OSError и WindowsError - одно и тоже

Eugene
24.09.2016
05:46:56
OSError = WindowsError Вот так вижу, но это в коде.

Serge
24.09.2016
05:47:50
Интересно, что разная иерархия вверх от того же класса

Eugene
24.09.2016
05:47:53
Интересно, зачем так сделали?

Serge
24.09.2016
05:48:09
Интересно, зачем так сделали?
Чтобы код можно было читать

Eugene
24.09.2016
05:48:44
Я имею в виду, разные иерархии, зависимые от платформы.

Serge
24.09.2016
05:48:45
Каждая реализация называется по своему, на разных платформах используется своя

Eugene
24.09.2016
05:49:36
В Qt тоже разные реализации, но большая часть public API одинаковая

Serge
24.09.2016
05:49:52
OSError

Посмотри как модуль os реализован

Где это видно?
Видимо смотрелка иерархии питоновских классов эта ваша плохо смотрит на сюшный код

Eugene
24.09.2016
05:51:51
Кстати, с этим BrokenPipe в communicate всё как-то мутно. Ошибка происходит только под linux и только первый раз. Если повторно попытаться создать процесс, то communicate проходит, но ошибка попадает уже в stderr. Разбираюсь, что там происходит. Скорее всего мой косяк где-то не очень очивидный.

Посмотри как модуль os реализован
Ага, я посомтрел. Да, смотрелка работает на заглушках

Serge
24.09.2016
05:52:32
Суббота 9 утра... Какой код... Зачем?:)

Eugene
24.09.2016
05:53:20
Ну, так получилось, у меня ненормированный рабочий график :) Особенности отсутствия офиса

Google
Eugene
24.09.2016
05:55:27
In[2]: WindowsError.__base__ Out[2]: Exception

Serge
24.09.2016
05:55:52
Zart
24.09.2016
05:55:56
это из двойки. а в тройке WindowsError стала альясом ОСЕррор ваш аргумент инвалид

тройка: >>> WindowsError is OSError True

а альясом сделали именно потому чтоб уйти от "ошибка зависящая от платформы" 8)

линукс: NameError: name 'WindowsError' is not defined

Eugene
24.09.2016
05:57:38
Zart
24.09.2016
05:57:46
есть конечно

но почему-то человек, который так сильно дрочит на исключения и их иерархии не читал https://www.python.org/dev/peps/pep-3151/

Eugene
24.09.2016
05:58:42
В дремучие времена они предлагали использовать на винде WindowsError и оно не было OSError? Если так, то печально.

Zart
24.09.2016
05:59:12
я только что привел выше тот факт, что раньше винеррор был сабклассом осеррор

потому что в отличие от осеррор содержало специфические коды ошибок от вин32

и обёртку вокруг FormatError емнимс

Eugene
24.09.2016
06:00:30
Читал скорее всего, но, как раз по причине того, что не слшкм то и сильно "дрочит", всё это ушло в глубины памяти :)

Zart
24.09.2016
06:01:06
тут таки не жаба с throws кейвордом

если в доку писать всё что может быть кинуто - придётся везде еще и SystemExit с KeyboardInterrupt'ом вписывать поди

Eugene
24.09.2016
06:02:17
А сейчас оно не содержит специфические коды ошибок? Или оно в errno всё?

Zart
24.09.2016
06:03:08
а сейчас настрогали дополнительные классы исключений и мапнули на них ошибки разных платформ

Google
Eugene
24.09.2016
06:03:10
если в доку писать всё что может быть кинуто - придётся везде еще и SystemExit с KeyboardInterrupt'ом вписывать поди
Нет, надо вписывать предметно. Например, в numpydoc специальная секция для описания исключений есть: Raises

Zart
24.09.2016
06:03:39
и вообще, не помешает посмотреть на https://docs.python.org/3/library/exceptions.html#exception-hierarchy

а потом на https://docs.python.org/2/library/exceptions.html#exception-hierarchy 8)

Eugene
24.09.2016
06:04:13
Блин, оно у меня в закладках оказалось...

Serge
24.09.2016
06:04:33
если в доку писать всё что может быть кинуто - придётся везде еще и SystemExit с KeyboardInterrupt'ом вписывать поди
Надо писать всё, что используется, ссылаться, если не перехватывается

Admin
ERROR: S client not available

Zart
24.09.2016
06:05:00
по хорошему возможно надо

кто готов всю эту работу проделать?

Serge
24.09.2016
06:05:30
Eugene
24.09.2016
06:05:51
Или тысячи индусов с китайцами, они такую работу легко делают

В смысле, монотонную, но требующую внимательности.

Zart
24.09.2016
06:06:14
тут речь о том, чтобы проанализировать код всего стдлиба на предмет того что оно может кинуть и когда потом еще прикинуть на каких платформах что может произойти

а доку к питону пишут всего десяток...

Eugene
24.09.2016
06:07:00
Ага и это должно быть очевидно "с первого раза". Ну если ты родился с клавиатурой в руках, а борода твоя до пупа, возможно. :)

Zart
24.09.2016
06:07:47
мм...

опыт наверное?

Eugene
24.09.2016
06:09:29
Именно, опыт. Но опыт и формируется в том числе при наступлении на грабли, да на свои, причём что бы там ни говорили про учение на чужих ошибках.

Кстати, мне тут статья понравилась. Может немного не по теме. https://habrahabr.ru/post/310776/ Вот читал и прямо прослезился. Чел хотел, чтобы его научили писать крутой production код, а попал в индусский ад.

Zart
24.09.2016
06:17:58
человек познакомился с Реальным Продакшеном, который Хуяк-Хуяк

Serge
24.09.2016
07:02:04
Google
Zart
24.09.2016
07:06:34
https://hg.python.org/cpython/file/tip/Lib/test/test_subprocess.py#l638 8)

Serge
24.09.2016
07:08:13
https://hg.python.org/cpython/file/tip/Lib/test/test_subprocess.py#l638 8)
Ну бегло с телефона один assertRaises я увидел

Zart
24.09.2016
07:08:42
это ссылка на комментарий да, они тестируют self.assertRaises

Serge
24.09.2016
07:08:53
А, да, сообразил

Zart
24.09.2016
07:09:08
но комментарий был о другом 8)

Andrey
24.09.2016
08:15:55
кажется во всей этой телеге про исключения народ грустит, что в питоне нет джавовской декларации throws

Вот только со всем питоновским динамизмом сделать его невозможно. Я могу в любой момент создать кастомный класс исключения прямо в риалтайме и бросить его

Zart
24.09.2016
08:18:58
исключения нынче обязаны наследоваться от baseexception. раньше можно было бросить что угодно 8)

Andrey
24.09.2016
08:21:27
так я и от него в риалтайме отнаследоваться могу

type('MyException', (BaseException,), {})

Zart
24.09.2016
08:22:47
да я в курсе

Danil
24.09.2016
08:59:35
в 80 годах 4160 субботы
4180, так что лучше на женщин трать

Zart
24.09.2016
09:01:41
а разве не 4174?

4160 получают умножением 52 недель в году на 80 а 365.25 * 80 // 7 дает 4174

Andrey
24.09.2016
09:04:50
Подозреваю, что полиморфизм доку может и убить. Отнаследумся от чего-то, что вызывается внутри, кинем там исключение и все

Eugene
24.09.2016
09:06:19
Danil
24.09.2016
09:06:44
from calendar import monthcalendar в помощь :)
нет пока на телефоне (

Страница 147 из 785