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

OSCHINA-MIRROR/SCANOSS-scanner.py

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 13.03.2025 23:53 f191a4e

SCANOSS Scanner

Сканнер SCANOSS — это простой скрипт на Python, который выполняет сканирование папки с помощью API SCANOSS.

Использование

Запустите scanner.py как скрипт Python, передав в качестве аргумента путь к папке, которую требуется просканировать.

Пример:

python3 scanner.py /путь/к/папке/для/скана/

Файл scanner.py генерирует файл WFP, который сохраняется как scan_wfp в текущей папке. Этот файл загружается в API SCANOSS для выполнения сканирования и получения выходных данных в формате JSON.

Усиление

SCANOSS использует адаптацию оригинального алгоритма усиления от S. Schleimer, D. S. Wilkerson и A. Aiken, описанного в их основной статье, которая доступна здесь: https://theory.stanford.edu/~aiken/publications/papers/sigmod03.pdf

Алгоритм усиления настраивается с использованием двух параметров: размера грама и размера окна. Для SCANOSS значения должны быть следующими:

  • ГРАМ: 30
  • ОКНО: 64

Результат выполнения алгоритма усиления представляет собой строку, называемую WFP (Усиленный Отпечаток). В WFP может содержаться имя исходного компонента и результаты выполнения алгоритма усиления для каждого файла.

ПРИМЕР вывода: test-component.wfp

component=f9fc398cec3f9dd52aa76ce5b13e5f75,test-component.zip
file=cae3ae667a54d731ca934e2867b32aaa,948,test/test-file1.c
4=579be9fb
5=9d9eefda,58533be6,6bb11697
6=80188a22,f9bb9220
10=750988e0,b6785a0d
12=600c7ec9
13=595544cc
18=e3cb3b0f
19=e8f7133d
file=cae3ae667a54d731ca934e2867b32aaa,1843,test/test-file2.c
2=58fb3eed
3=f5f7f458
4=aba6add1
8=53762a72,0d274008,6be2454a
10=239c7dfa
12=0b2188c9
15=bd9c4b10,d5c8f9fb
16=eb7309dd,63aebec5
19=316e10eb
[...]
```Здесь, компонент — это хэш MD5 и путь к компоненту (может быть путём к сжатому файлу или URL). Файл — это хэш MD5, длина файла и путь к файлу, за которым следует список отпечатков WFP с соответствующими номерами строк.

## Требования

Python версии 3.5 или выше.

Зависимости можно найти в файле [requirements.txt](requirements.txt). Чтобы установить зависимости:

pip3 install -r requirements.txt


Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/SCANOSS-scanner.py.git
git@api.gitlife.ru:oschina-mirror/SCANOSS-scanner.py.git
oschina-mirror
SCANOSS-scanner.py
SCANOSS-scanner.py
master