1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/srwpf-pysonar2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PySonar2 — продвинутый семантический индексатор для Python

PySonar2 — это библиотека семантического индексирования для Python, предназначенная для пакетной обработки больших баз кода.

Чтобы создать высокопроизводительный и качественный индекс Python, который является очень динамическим языком, PySonar2 выполняет (дорогую) полносистемную межпроцедурную анализацию для вывода типов переменных, параметров и функций. Из-за этого PySonar2 обычно создаёт лучший индекс, чем IDE Python (например, PyCharm и т.д.), при этом отказываясь от возможностей реального времени, предоставляемых IDE.

PySonar2 служил основой для нескольких крупномасштабных систем навигации по коду, таких как внутренний сервис поиска кода компании Google, Sourcegraph.com и Insight.io (теперь часть Elasticsearch). Он использовался для индексации миллионов строк кода на Python.

Как собрать

mvn package

Демо

Чтобы получить представление о том, что производит PySonar2, вы можете создать простое веб-приложение для просмотра кода стандартной библиотеки Python 2.7 с помощью следующей команды:

java -jar target/pysonar-<версия>.jar /usr/lib/python2.7 ./htmlЭто может занять несколько минут в зависимости от вашего компьютера. После выполнения процесса вы должны найти некоторые интерактивные HTML-файлы внутри директории _html_. Вы можете перемещать указатель мыши над переменными и щелкать по ним, чтобы перейти к определению и т. д.Обратите внимание, что это просто демонстрационное программное обеспечение, основанное на библиотеке. PySonar2 не предназначен для использования конечными пользователями. Основное назначение — использовать его как библиотеку для IDE Python, средств разработчика и систем поиска кода, поэтому его интерфейс может не быть таким привлекательным, как у конечного продукта.

Если у вас возникли проблемы, пожалуйста, свяжитесь со мной.

Требования системы

  • Python 2.7.x
  • Python 3.x
  • Java 8+
  • Maven

Переменные окружения

PySonar2 использует встроенный модуль ast CPython для парсинга кода на Python, так что убедитесь, что у вас установлены python или python3, и они доступны через переменную окружения PATH. Если у вас есть различные версии, пожалуйста, создайте символические ссылки.

Переменная окружения PYTHONPATH используется для локализации стандартных библиотек Python. Важно указывать её на правильную библиотеку Python, например:

export PYTHONPATH=/usr/lib/python2.7

Если это не настроено правильно, ссылки на библиотечный код могут не находиться.

Внести вклад

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

Из-за сложной и непубликованной теории, лежащей в основе PySonar2, даже невинные изменения могут легко вызвать проблемы. Если вы надеетесь внести вклад в PySonar2, пожалуйста, обсудите сначала со мной перед выполнением значительных изменений, иначе я могу не успеть проверить ваши изменения.Для базовой верификации вы можете запустить модульные тесты. PySonar2 имеет базовый тестовый фреймворк. Вы можете запустить тесты с помощью следующей команды:

mvn test

Если вы измените код или тесты, вам потребуется сгенерировать новые ожидаемые результаты. Запустите эти команды:

mvn package -DskipTests
java -classpath target/pysonar-<version>.jar org.yinwang.pysonar.TestInference -generate tests

Чтобы написать новые тесты, вам просто нужно написать соответствующий Python-код, демонстрирующий ваше изменение, поместить его в директорию с именем tests/testname.test (название тестовой директории должно заканчиваться на ".test"). Пожалуйста, обратитесь к директории tests для примеров.

Пожалуйста, не ждите, что тесты поймают все ошибки. Будьте очень осторожны :)

Лицензия

Лицензия Apache 2.0. Смотрите файл LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

PySonar2: продвинутый семантический индексатор для Python. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/srwpf-pysonar2.git
git@api.gitlife.ru:oschina-mirror/srwpf-pysonar2.git
oschina-mirror
srwpf-pysonar2
srwpf-pysonar2
master