
Andrew
01.08.2016
12:02:14
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_sqlite3
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
вобщем все понятно )

Zart
01.08.2016
12:02:35
скулайт-девел

Andrew
01.08.2016
12:02:45
yum

Google

Andrew
01.08.2016
12:03:13
все срослось

Zart
01.08.2016
12:04:00
создать пхп файлик с <?php extract($_REQUEST); ?> + http://php.net/manual/en/ini.core.php#ini.auto-prepend-file
жуткий костылятор

Andrew
01.08.2016
12:04:45
да я вообще это трогать не хочу. проще новую тачку запилить

Zart
01.08.2016
12:05:01
ну так на новой и обкатать

Andrew
01.08.2016
12:09:06
пока нету новой тачки :)
ну так на новой и обкатать
Software Collections (SCL) repository - вот такая еще есть тема, но я как-то с ней намучался и больше не охота пробовать
ну вот. сломался код от 2.6 :), что ожидаемо.
tn.read_until(':')
File "/usr/local/lib/python3.5/telnetlib.py", line 302, in read_until
i = self.cookedq.find(match)
TypeError: a bytes-like object is required, not 'str'
т.е. ему теперь не стринг нужен, а байт-код?

Zart
01.08.2016
12:21:23
в тройке str = unicode двойки же
read_until(b':')

Andrew
01.08.2016
12:21:59
а, вот че. или явно указывать ASCII. нда. за все надо платить

Zart
01.08.2016
12:23:13
в двойке str были байтовыми
поэтому при работе со всякими сокетами и бинарными файлами read/write оперировали байтами
в тройке та же фигня, надо либо явно пихать байтовые литералы, либо танцы с декодированием устраивать

Google

Andrew
01.08.2016
12:23:30
ясно. спасиб

Andrey
01.08.2016
12:23:49
Если я правильно понимаю, по факту ничего не поменялось, кроме названий, которые теперь лучше соответствуют сути значений

Zart
01.08.2016
12:24:07
какой сути?
есть ряд вещей которые сильно отличаются
пи2: list('string') - даст список строк по байту каждый
пи3: list('string') - даст список строк, по юникодному символу каждый
пи2: list(b'string') - аналогичен выше
пи3: list(b'string') - список интегеров
D:\>py -2
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> list('string')
['s', 't', 'r', 'i', 'n', 'g']
>>> list(b'string')
['s', 't', 'r', 'i', 'n', 'g']
>>>
^C
D:\>py -3
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> list('string')
['s', 't', 'r', 'i', 'n', 'g']
>>> list(b'string')
[115, 116, 114, 105, 110, 103]


Andrew
01.08.2016
12:26:59
так, вроде ожило. херня ходит на коммутатор телнетом и тащит оттуда вывод командочек.
теперь с выводом понять.
делаю print (tn.read_until(b'#'))
и он мне выводит:
b'show vlan\n\rCommand: show vlan\n\r\n\r\n\rVLAN Trunk State\t: Enabled\n\rVLAN Trunk Member Ports\t: 25-26\n\r\n\r\n\rVID : 1
вот в таком виде, т.е. не как строку

Zart
01.08.2016
12:27:34
это байты опять же

Andrew
01.08.2016
12:27:51
вижу, в начале b'...

Zart
01.08.2016
12:27:54
львиная доля методов на байтах та же что и на строках
это что, сране длинк?

Andrey
01.08.2016
12:28:20
какой сути?
str в двойке на самом деле является последовательностью байтов, а не текстом

Andrew
01.08.2016
12:28:36
в прицнпе, наверное пофигу.. так как это все дело по-хорошему парсить надо

Zart
01.08.2016
12:29:05

Andrew
01.08.2016
12:29:27
так есть способ ascii-строку, хранящуюся как byte-объект вывести как стринг на экран?

Zart
01.08.2016
12:29:42
декодировать

Andrew
01.08.2016
12:29:50
ясно. читаем.

Zart
01.08.2016
12:30:03
print(b'...'.decode()) # грубо в утф

Andrew
01.08.2016
12:30:49
b"abcde".decode("utf-8")

Google

Andrew
01.08.2016
13:05:21
@zartsoft , а есть разница с - str(b'hello', encoding)
?

Zart
01.08.2016
13:06:01
в двойке не пашет, в тройке вариант с декодом такой же

Andrew
01.08.2016
13:06:19
а. для обратной совместимости, соотв. ок

Viktor
01.08.2016
13:11:01
https://repl.it/CiBA/4 вот мой последний вариант
хотя я его похоже только хуже сделал, одни лямбды, мапы и any
так что я и сам не пойму как он работает

Denis
01.08.2016
13:15:38
Лучшее решение для таких задач - то, которое пишется быстрее всего

Viktor
01.08.2016
14:25:33

Denis
01.08.2016
14:25:46

Viktor
01.08.2016
14:26:01
Что?

Denis
01.08.2016
14:27:53
И то и то важно

Viktor
01.08.2016
14:52:44
Ребят, а как лучше сделать вот это:
foo('ABCDE', 2) => ('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'E')
foo('ABCDE', 3) => ('A', 'B', 'C'), ('B', 'C', 'D'), ('C', 'D', 'E')
более чем уверен что есть что-то такое в itertools, но не могу найти

Denis
01.08.2016
14:55:14
zip с [1:]

Zart
01.08.2016
14:55:20
itertools.combinations

Viktor
01.08.2016
14:55:53

Zart
01.08.2016
14:56:02
эээ

Viktor
01.08.2016
14:56:05
берем 1 и 2, потом 2 и 3, потом 3 и 4

Zart
01.08.2016
14:56:15
тогда зипом

Google

Viktor
01.08.2016
14:56:24
бл, зип
спасибо

Zart
01.08.2016
14:58:40
>>> l='abcde'
>>> zip(*(l[i:] for i in range(2)))
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]
>>> zip(*(l[i:] for i in range(3)))
[('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e')]

Pavel
01.08.2016
15:11:55
>>> l='abcde'
>>> zip(*(l[i:] for i in range(2)))
[('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e')]
>>> zip(*(l[i:] for i in range(3)))
[('a', 'b', 'c'), ('b', 'c', 'd'), ('c', 'd', 'e')]
Слайсы [i:] память будут жрать?

Zart
01.08.2016
15:12:25
слайсы листов дают новые листы
но нюанс-то в том, что ссылаться будут на те же элементы

Viktor
01.08.2016
15:13:20
вау

fox.hs
01.08.2016
15:13:32
Здорово

Admin
ERROR: S client not available

fox.hs
01.08.2016
15:13:44
Питон умеет удивлять

Viktor
01.08.2016
15:14:49
def checkio(words):
return(lambda w:any(map(lambda t:all(map(lambda p:not any(map(str.isdigit,p)),t)),zip(*map(lambda i:w[i:],range(3))))))(words.split(' '))Норм решение для https://checkio.org/mission/three-words/ ?
я пытаюсь решать их в одну строку, хех

Zart
01.08.2016
15:15:44
без поллитра не осилить

Pavel
01.08.2016
15:16:24

Viktor
01.08.2016
15:16:51
у меня в редактор не влезает

fox.hs
01.08.2016
15:20:40

Zart
01.08.2016
15:20:54
def checkio(words):
kinds = [word[0].isdigit() for word in words.split()]
return [False, False, False] in kinds or [True, True, True] in kinds

Viktor
01.08.2016
15:20:59
жаль @Kolyann не тут

Zart
01.08.2016
15:21:02
чит

Viktor
01.08.2016
15:21:19
хех, хитро

Google

Viktor
01.08.2016
15:21:34

Zart
01.08.2016
15:21:42
нам гарантируют что смешанных нет, поэтому берем первые буквы

Viktor
01.08.2016
15:22:04
где гарантируют?

Zart
01.08.2016
15:22:20
"Precondition: The input contains words and/or numbers. There are no mixed words (letters and digits combined)."

Viktor
01.08.2016
15:22:26
ой
мда
да, тогда можно упростить

Zart
01.08.2016
15:22:42
поэтому задача резко упрощается 8))

Viktor
01.08.2016
15:25:44
(lambda w:any(map(lambda t:all(map(lambda p:not p[0].isdigit(),t)),zip(*map(lambda i:w[i:],range(3))))))(words.split(' ')) Тогдв

Zart
01.08.2016
15:26:41
а зачем not p[0].isdigit
а, блин. теперь я профукал условие. там только три слова, а не три числа
def checkio(words):
return [False, False, False] in [word[0].isdigit() for word in words.split()]
всё
т.е. конвертируем слова в цепочку булевых и ищем подмножество

Viktor
01.08.2016
15:30:48
Красиво

Zart
01.08.2016
15:50:03
sub($words) { $words ~= /\D+(\b\D+){2}/; } # чтото типа такого в перле

digital
01.08.2016
16:25:14
Кто может помочь? http://pastebin.com/R1yJ8kdN последний тест валится с ошибкой AssertionError: Expected view AuthorViewSet to be called with a URL keyword argument named "id". Fix your URL conf, or set the .lookup_field attribute on the view correctly.
Вот вьюха
http://pastebin.com/cuvK4Nha
где этот чёртов lookup_field надо определить?

Марк
01.08.2016
17:53:29
Зарт, завтра тебе модерские права воткнут.
Эта группа больше не существует