
Konstantin
21.08.2018
20:13:04
<p><b>Some heading:</b></p>
<p>Some horrible list code</p>
<ul>
<li>foo</li>
<li>bar</li>
</ul>
<p>Hello</p>
Hey, no tag
<ul><li><p>Good list</p></li>
<li>One more line</p></li></ul>
чур replace не предлагать

Egor
21.08.2018
20:13:43
Задача простая

Konstantin
21.08.2018
20:13:49
непростая, кто ж спорит

Google

Konstantin
21.08.2018
20:14:18
ну вот я уже <li>foo</li> нашел
и спрашиваю, может кто-то представляет как правильнее всего изъять из дерева <li>foo</li>, \n, <li>bar</li>, вставить их в новый тег <ul> и поместить обратно в дерево

Сергей
21.08.2018
20:16:45
обычную такую стейт машин. байпасим старт/стоп тегов кроме ul/li. если открывается ul то переходим в состояние list байпасим содержимое. если открывается li и состояние не list то сперва выплевываем открытый ul и т.д. и т.п.

Konstantin
21.08.2018
20:17:30
а, типа рядом с первым супом сделать второй суп и по одному тегу туда перебросить?
заманчиво, но есть одна проблема

Egor
21.08.2018
20:17:45
Можно в том же

Konstantin
21.08.2018
20:17:50
суп - дерево, а не последовательность тегов

Сергей
21.08.2018
20:17:57

Konstantin
21.08.2018
20:17:59
поэтому его так просто не обойдешь
так суп его и сделал

Сергей
21.08.2018
20:18:09
мы ж тут про xml говорим

Konstantin
21.08.2018
20:18:39
а я - нет
у меня между тегами значимые текстовые строки

Google

Egor
21.08.2018
20:19:13
Суп может вроде и с таким работать.

Сергей
21.08.2018
20:19:30
строки у тебя в атрибутах элемента

Egor
21.08.2018
20:20:24
Машина состояний

Сергей
21.08.2018
20:20:25
конечный автомат знаешь?

Konstantin
21.08.2018
20:20:30
конечный детерминированный автомат
да

Egor
21.08.2018
20:21:06
Это типа цикл с кучей ифов внутри?

Сергей
21.08.2018
20:21:14

Konstantin
21.08.2018
20:21:19
а как тогда в супе обойти теги последовательно?

Сергей
21.08.2018
20:21:36
если цикл с кучей ифоф то это говнокод

Konstantin
21.08.2018
20:21:48
ну вот имею я <p>foobar<ul><li>zzz</li><li>qwe</li></ul></p>

Egor
21.08.2018
20:22:18

Konstantin
21.08.2018
20:22:46
как мне так проитерироваться, чтобы было <p> -> foobar -> <ul> -> <li> -> zzz -> </li> -> <li> -> qwe -> </li> -> </ul> -> </p>
?
если я правильно понимаю идею с автоматом
т.е. конкретно, как в супе получить именно "открывающий тег"?
по-моему такое не поддерживается

Sab0
21.08.2018
20:23:33

Сергей
21.08.2018
20:23:47

Google

Egor
21.08.2018
20:25:18

Konstantin
21.08.2018
20:25:38
это будет кромешный ад

Сергей
21.08.2018
20:25:39

Konstantin
21.08.2018
20:25:49
ладно, буду выковыривать
получится - похвастаюсь

Egor
21.08.2018
20:26:30

Сергей
21.08.2018
20:26:54

Egor
21.08.2018
20:27:35

Aragaer
21.08.2018
20:27:42
/me попытался использовать threading в unittest и встрял намертво

Nikolay
21.08.2018
20:28:02

Egor
21.08.2018
20:28:11

Nikolay
21.08.2018
20:28:21

Aragaer
21.08.2018
20:29:03
есть функция, которая принимает серверный сокет и должна реализовать логику принятия клиентов и прочее такое
пытаюсь ее засунуть под тесты

Сергей
21.08.2018
20:29:34
м... можно было же еще и xpath заюзать

Nikolay
21.08.2018
20:29:51

Konstantin
21.08.2018
20:29:57
а как так получается?

Tigran
21.08.2018
20:30:03

Denis
21.08.2018
20:30:07

Konstantin
21.08.2018
20:30:23
почему wrap выполняется для каждой li?

Google

Admin
ERROR: S client not available

Egor
21.08.2018
20:30:28

Konstantin
21.08.2018
20:30:28
но при этом ul только один?

Aragaer
21.08.2018
20:30:38
а зачем тут моки, если я хочу именно тестить то, как она принимает коннекты?

Nikolay
21.08.2018
20:30:59

Konstantin
21.08.2018
20:31:32
а!
спасибо!

Maxim
21.08.2018
20:31:38
а подскажите, как пользовательский класс запихать в set(), чтобы он хранил не просто указатели на объекты, а чтобы все объекты бвли уникальны?

Konstantin
21.08.2018
20:31:53
там же в wrap передается один и тот же ul!

Denis
21.08.2018
20:32:04

Nikolay
21.08.2018
20:32:05
спасибо!
единственное - это надо кучку таких li найти, которые вместе

Aragaer
21.08.2018
20:32:08
... просто тупо поменял threading на multiprocessing

Egor
21.08.2018
20:32:12

Aragaer
21.08.2018
20:32:24
нет, я хочу тестить реализацию работы со 100500 клиентами

Denis
21.08.2018
20:32:34
Это уже интеграционный тест

Konstantin
21.08.2018
20:32:41

Артур
21.08.2018
20:32:51

Denis
21.08.2018
20:32:55
Можно же экзекьютор сделать, не?

Nikolay
21.08.2018
20:33:06

Tigran
21.08.2018
20:33:12

Google

Сергей
21.08.2018
20:33:14
зачем тут питон? тут и на пальцах посчитать можно

Konstantin
21.08.2018
20:33:16

Egor
21.08.2018
20:33:24
Кредит прогрессивный?

Nikolay
21.08.2018
20:33:28
что за лаба

Maxim
21.08.2018
20:33:34

Nikolay
21.08.2018
20:33:51
гугли сложный процент

Сергей
21.08.2018
20:34:14

Egor
21.08.2018
20:34:47

Сергей
21.08.2018
20:35:00
один фиг в год по 200т.р. только проценты