Правильным названием вашего кластера является полный подграф . Ваша проблема известна как проблема клики . Одна из лучших библиотек обработки графов для Python - networkx - имеет несколько алгоритмов для решения этой проблемы: networkx cliques
Ваша проблема может быть решена с помощью этой функции: networkx.algorithms. clique.enumerate_all_cliques
Вы должны преобразовать свой граф в формат networkx и использовать эти алгоритмы, чтобы найти его.
Замечательные парни в Mozilla просто выпустили новое https://github.com/mozilla/web-ext, который можно использовать для запуска web-ext run --target chromium
Это нельзя сделать напрямую. Извините.
Если вы хотите видеть его как функцию, вы можете запросить его по адресу http://crbug.com/new
Расширения Chrome имеют систему разрешений, которая не позволит этого (у некоторых людей в SO была та же проблема, что и у вас), поэтому просьба "добавить эту функцию" не сработает IMO. Есть письмо из Chromium Extensions Google Groups с предлагаемым решением (теория) с использованием chrome.extension.getViews()
, но оно тоже не гарантированно работает.
Если бы можно было добавить в manifest. json
некоторые внутренние страницы Chrome, например chrome: //extensions/
, можно было бы создать плагин, который взаимодействовал бы с якорем Reload
, и, используя внешнюю программу вроде XRefresh (плагин для Firefox - есть версия для Chrome, использующая Ruby и WebSocket), вы бы добились того, что вам нужно:
XRefresh - это плагин для браузера, который обновляет текущую веб-страницу из-за изменения файлов в выбранных папках. Это позволяет в режиме реального времени редактировать страницу в реальном времени с помощью вашего любимого HTML/CSS редактором.
Это невозможно сделать, но я думаю, что вы можете использовать ту же концепцию по-другому.
Вы можете попробовать найти сторонние решения, которые, увидев изменения в файле (я не знаю ни emacs, ни Textmate, но в Emacs можно было бы привязать вызов приложения в действии "сохранить файл"), просто нажимают на конкретную координату конкретного приложения: в данном случае это якорь Reload
из вашего разрабатываемого расширения (вы оставляете окно Chrome открытым только для этой перезагрузки).
(Безумно, но это может сработать)
Ваши файлы содержимого, такие как html и файлы манифеста, не могут быть изменены без установки расширения, но я верю, что файлы JavaScript динамически загружаются до тех пор, пока расширение не будет упаковано.
Я знаю это из-за текущего проекта, над которым я работаю через Chrome Extensions API, и, кажется, загружается каждый раз, когда я обновляю страницу.