@spbpython

Страница 20 из 785
p0123n
28.03.2016
08:31:09
L7 это же уровень приложения? Тогда можно смело брать любой асинхронный http клиент и вот оно.
да эт понятно, но может есть что-то, чем вы пользуетесь и нравится как сделано.

Andrey
28.03.2016
08:42:20
Я не помню, прямо в requests встроена асинхронщина или нет. Если нет, то в торнадо был симпатичный асинхронный клиент

amureki
28.03.2016
08:43:20
мы ж современные люди, теперь можно на asyncio с aiohttp посмотреть

Google
p0123n
28.03.2016
08:44:08
google: gevent examples
спасибо, шикарный туториал.

amureki
28.03.2016
08:44:33
с современными я погорячился, извините :(

Andrey
28.03.2016
08:45:01
А тебе почему именно второй питон?

p0123n
28.03.2016
08:46:44
А тебе почему именно второй питон?
у нас всё на втором и только одна тулза на третьем будет у нас немного странно смотреться

amureki
28.03.2016
08:47:15
будет смотреться свежо, отлично, ярко выделяться, заставит остальные тулзы задуматься

Andrey
28.03.2016
08:48:53
Ну ок. Но как минимум в 2016 году стоит писать универсально, чтобы на третьем питоне тоже работало. Чтобы потом сказать, что ничего переписывать не надо, переходим на современные технологии

amureki
28.03.2016
08:49:42
да, аргументируя тем, что все на втором питоне, никогда не перейти вперед, на третий

Roman
28.03.2016
08:52:15
вообще, поддержку 3го питона в eventlet сделали только недавно

Roman
28.03.2016
08:53:02
когда в asyncio сделают libuv по дефолту - тогда стоит переходить :)

p0123n
28.03.2016
08:55:26
Есть необходимость в инструментарии, который написан на втором поменять одну общую библиотеку, оставив неизменным её интерфейс (чтобы остальные компоненты не заметили подмены). Это пока основная причина в выборе второй версии.

Andrey
28.03.2016
10:30:43
в общем сделай, чтобы эту либу можно было и из третьего дергать, а потом переберетесь

Google
Roman
28.03.2016
11:05:16
гм.. а bytearray в cpython медленный?

Serge
28.03.2016
11:06:56
гм.. а bytearray в cpython медленный?
мы же недавно выснили, что всё надо мерять;)

Roman
28.03.2016
11:07:38
мы же недавно выснили, что всё надо мерять;)
ну да. но ты вроде говорил что медленный. или я ошибся?

Serge
28.03.2016
11:11:59
вроде не я

Roman
28.03.2016
12:06:47
некоторые авторы модулей на pypi заявляют то, чего нет. :(

Dmitry
28.03.2016
12:11:25
Маркетинговый буллщит

Или замануха новых людей в проект. Вот ты заметил - и присоединился.

Roman
28.03.2016
12:14:23
Маркетинговый буллщит
не, там автор заявляет что код работает на всех версиях cpython и pypy. а в реальности на pypy там не работает

Dmitry
28.03.2016
12:15:15
Написал автору?

Roman
28.03.2016
12:15:27
угу.

Dmitry
28.03.2016
12:15:45
?

Roman
28.03.2016
12:15:52
но вот честно, смотрю я на это и не знаю что делать.

Andrey
28.03.2016
12:16:08
страдать не подходит?

Aleksandr
28.03.2016
12:17:10
Бомбить еще можно.

Roman
28.03.2016
12:17:17
он там сделал реализацию линуксового vmsplice. та вход принимается массив из строк и он в коде получает указатели на эти строки.

http://blitz.works/butter/file/ae1a291ed8ba/butter/splice.py

211 строка.

и для cpython возможно получить указатель на обычную строку. а для pypy такого нельзя сделать, надо аллоцировать буфер и туда копировать строку.

mvec = ['a', 'b', 'c'] bvec = [ffi.new('char[]', buf) for buf in mvec]

вот как-то так.

Google
Roman
28.03.2016
12:20:20
а лучше вообще не использовать питоновские строки :)

Aleksandr
28.03.2016
12:42:07
Ага.

Roman
28.03.2016
12:43:07
Serg
28.03.2016
12:59:55
Not a bug %)
Внезапно... А есть еще такие фичи?:))

Dmitry
28.03.2016
13:02:40
Ну например ещё []=()

Хотя это скорее баг

Serg
28.03.2016
13:16:41
на 3.5 гооврит False

Dmitry
28.03.2016
13:17:07
Это не сравнение :)

В этом то и прикол

Serg
28.03.2016
13:17:46
А если не сравнение, то что тогда?

Dmitry
28.03.2016
13:18:00
Присваивание

Serg
28.03.2016
13:19:19
Подумал что сравнение как раз таки :) Так это же ссылка просто стала указывать на список. Это же вполне нормально

Serge
28.03.2016
13:21:13
Ну например ещё []=()
а это где? а там еще что-то рядом есть?;)

Dmitry
28.03.2016
13:23:09
Там был срачик почему []=() можно а ()=[] нельзя

https://bugs.python.org/issue23275

Serg
28.03.2016
13:32:02
Весело однако :) 

Aleksandr
28.03.2016
13:34:01
Хз, меня эта ассиметрия не так бесит, как разница между += и = ... + ...

That Guy
28.03.2016
15:06:24
гм.. а bytearray в cpython медленный?
Я однажды бенчмаркал так: делал один огромный массив на 4 гига и рандомно инкрементировал элементы. Bytearray выиграл и у array.array (несильно), и у numpy (в два раза)

Google
Roman
28.03.2016
16:24:33
кстати, для быстрого и надежного общения между сервисами в linux круто использовать rds_tcp: на лупбеке оно показывает совершенно дикие 5Гбайт/с, на реальных сетевых карточках просто укладывает линк :)

https://gist.github.com/anonymous/30b12f4edf1bed2884c8

как-то вот так

Dmitry
28.03.2016
19:27:10
>>> 3 * 0.1 0.30000000000000004

Aleksandr
28.03.2016
19:29:17
Decimal в массы

Serge
28.03.2016
19:38:46
>>> 3 * 0.1 0.30000000000000004
И что странного?

Dmitry
28.03.2016
19:43:32
не странно) я просто напоминаю)

Artyom
29.03.2016
09:04:41
Hello. Подскажите, хорошо ли в питоне одной функции присваивать кучи имен? Это память не жрет? В си: есть функция , на нее можно создать несколько указателей. В питоне есть функция, ее можно присвоить разным переменным. Как в питоне это в потрохах устроено? Переменной присваивается указатель на функцию или создается копия функции в памяти. ПС в основном много писал для микроконтроьеров на С...

Serge
29.03.2016
09:05:58
In [1]: def foo(): ...: pass ...: In [2]: bar = foo In [3]: foo is bar Out[3]: True можно самому проверить;) не жрет.

Artyom
29.03.2016
09:10:52
Я в данный момент не имею доступ к пк, а мысль возникла спасибо.

Artyom
29.03.2016
09:12:52
Спасибо

Andrey
29.03.2016
09:34:25
А что, где-то копирует?

Ну кроме С, там все явно

GNU/Docker
29.03.2016
15:08:36
Указатель присваивается

Также можно на любые мутабельные переменные вешать другие имена

только осторожно:)

GNU/Docker
29.03.2016
15:10:01
нет же.

Serge
29.03.2016
15:10:02
In [1]: a = 1 In [2]: a = 'akdhfbfjsdg' In [3]: b = a In [4]: a is b Out[4]: True

Google
Serge
29.03.2016
15:10:40
In [1]: a = (1, 42, None) In [2]: b = a In [3]: a is b Out[3]: True

GNU/Docker
29.03.2016
15:10:41
ща

Serge
29.03.2016
15:10:44
давай

GNU/Docker
29.03.2016
15:12:33
А не, это я другое вспомнил

Serge
29.03.2016
15:12:42
я так и подумал;)

GNU/Docker
29.03.2016
15:12:43
>>> a = 169999 >>> b = 169999 >>> a is b False >>> a = 254 >>> b = 254 >>> a is b True

Serge
29.03.2016
15:12:54
ага

GNU/Docker
29.03.2016
15:12:57
до 512 инты кешируются.

Serge
29.03.2016
15:13:11
и отрицательных немного

более того;) In [1]: a = 'a' In [2]: b = 'a' In [3]: a is b Out[3]: True In [4]: c = 'sdfsdfsdfsdf' In [5]: d = 'sdfsdfsdfsdf' In [6]: c is d Out[6]: True няшка

GNU/Docker
29.03.2016
15:15:37
Это я тоже проверил уже )

Serge
29.03.2016
15:15:56
In [1]: a = 'my name is' In [2]: b = 'my name is' In [3]: a is b Out[3]: False

или так In [4]: c = 'sdfsdfsdfsdfa' In [5]: d = 'sdfsdfsdfsdfa' In [6]: c is d Out[6]: True In [7]: c = 'sdfsdfsdfsd fa' In [8]: d = 'sdfsdfsdfsd fa' In [9]: c is d Out[9]: False

In [10]: a = ' ' In [11]: b = ' ' In [12]: a is b Out[12]: True In [13]: a = ' ' In [14]: b = ' ' In [15]: a is b Out[15]: False ну весело же

Andrey
29.03.2016
15:19:52
как понять правила, не заглядывая в документацию

Serge
29.03.2016
15:20:11
я даже больше скажу, надо в код смотреть

Dmitry
29.03.2016
15:27:23
GNU/Docker
29.03.2016
16:04:13
Ну ок.

Roman
29.03.2016
16:16:03
>>> печатай("Привет Мир!") Привет Мир!

Dmitry
29.03.2016
16:24:36
Это питон?

с открой('файл','ч') как ф:

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