Skip to main content

No project description provided

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsa_zoinks-0.1.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsa_zoinks-0.1.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file tsa_zoinks-0.1.2.tar.gz.

File metadata

  • Download URL: tsa_zoinks-0.1.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tsa_zoinks-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0ee734ac4a30cfb277c6ab80419973ffdfd6b97ce7ca61b68f7e56426d236f2e
MD5 59be738bc8e9f4e373ae04b67f47b531
BLAKE2b-256 e3c1d2c7095e06ea672b6ae9631e171e82a1938f8517f034384d53333e8672dd

See more details on using hashes here.

File details

Details for the file tsa_zoinks-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tsa_zoinks-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tsa_zoinks-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c9bfd95ff8131c4ab2449edf07891b375984269cd396e392fd7f8e7d8eac9c93
MD5 79cba04cc93a5df49aec3ebceaae7e4d
BLAKE2b-256 f35f79f988f2f1c3fa24c5d990310af463907abfa8d5cd32ddddcf603e3f2ab7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page