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 с ошибкой