Zoinks - Thread Safety Analysis Tool
Zoinks
— это статический анализатор для проверки безопасности многозадачности (thread safety) в Python коде. Он проверяет, используются ли блокировки и защищены ли переменные в многозадачных контекстах, что помогает предотвратить гонки данных и другие проблемы с потоками.
Установка
Build from source
Чтобы установить и использовать анализатор, выполните следующие шаги:
Склонируйте репозиторий или загрузите проект:
git clone <ссылка на репозиторий> cd <папка с проектом>
Установите сам проект:
pip install .
Install from PyPi
- Установите проект из репозитория 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