@ru_python

Страница 6293 из 9768
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
суп - дерево, а не последовательность тегов

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
Это типа цикл с кучей ифов внутри?

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
если цикл с кучей ифоф то это говнокод
А если там есть внешняя переменная, то уже state mashine ?

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
это будет кромешный ад

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: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
а как так получается?

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

Google
Admin
ERROR: S client not available

Egor
21.08.2018
20:30:28
м... можно было же еще и xpath заюзать
Он упадёт, если где-то тэг не закроется

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

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

Nikolay
21.08.2018
20:30:59
почему wrap выполняется для каждой li?
потому что все li надо положить в один и тот же ul

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

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

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

Konstantin
21.08.2018
20:32:41
единственное - это надо кучку таких li найти, которые вместе
а я это уже сделал, и еще надо все текстовые ноды между ними не потерять

Артур
21.08.2018
20:32:51
Я тебе блджад десять раз сказал, что дело в его сетевом окружении, а не в оси
То есть я не виноват. Понял. Но как запустить мою прогу на его железе?

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

Nikolay
21.08.2018
20:33:06
а я это уже сделал, и еще надо все текстовые ноды между ними не потерять
не должен потерять, контент внутри li вообще не трогается

Tigran
21.08.2018
20:33:12
То есть я не виноват. Понял. Но как запустить мою прогу на его железе?
Пусть разберётся со своим провайдером или ставит впн

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

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

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

Maxim
21.08.2018
20:33:34
hash задай классу
понял, спасибо

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т.р. только проценты

Страница 6293 из 9768