README.md

Zoinks - Thread Safety Analysis Tool

Zoinks — это статический анализатор для проверки безопасности многозадачности (thread safety) в Python коде. Он проверяет, используются ли блокировки и защищены ли переменные в многозадачных контекстах, что помогает предотвратить гонки данных и другие проблемы с потоками.

Установка

Build from source

Чтобы установить и использовать анализатор, выполните следующие шаги:

  1. Склонируйте репозиторий или загрузите проект:

    git clone <ссылка на репозиторий>
    cd <папка с проектом>
    
  2. Установите сам проект:

pip install .

Install from PyPi

  1. Установите проект из репозитория PyPi командой:
pip install tsa-zoinks

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

После установки вы можете использовать анализатор через командную строку, передав файл Python, который нужно проанализировать:

zoinks <путь_к_файлу.py>

Пример:

zoinks test_file.py

Описание предупреждений:

requires_lock — если функция, помеченная этим декоратором, не использует блокировку в своем теле, будет выведено предупреждение. guards_variable — если переменная, помеченная этим декоратором, не защищена должным образом в функции (например, не использует блокировку), будет выведено предупреждение. shared_variable — если разделяемая переменная используется внутри блока с блокировкой, будет выведено предупреждение.

Пример:

@shared_variable('shared_var')
def update_shared_var():
    with lock:
        shared_var = 100

При анализе этого кода будет выведено предупреждение:

Warning: Shared variable 'shared_var' should not be used with a lock.
Описание

Статический анализатор для проверки безопасности многозадачности в Python

Конвейеры
0 успешных
0 с ошибкой