{"categories":[{"label":"Utilities","url":"https://skillfed.io/packages/category/utilities/8"},{"label":"Monitoring","url":"https://skillfed.io/packages/category/system-monitoring/4"},{"label":"Debuggers","url":"https://skillfed.io/packages/category/software-development-debuggers"},{"label":"Benchmark","url":"https://skillfed.io/packages/category/system-benchmark"}],"enrichment":{"capability":"Interrupts long-running Python code by raising an exception after a specified timeout, using signal-based interruption on the main thread.","skillfed_tags":["signal-based","abandoned"],"use_cases":["Enforce maximum execution time for web request handlers or API endpoints that might hang.","Implement a time budget across multiple loop iterations, falling back to cheaper operations when time runs out.","Wrap potentially infinite or very slow operations in a decorator to prevent them from blocking the entire program.","Create nested timeout scopes where an outer timeout bounds the total runtime of multiple inner operations.","Debug or test code that may hang by catching timeout exceptions and logging diagnostic information."],"what_it_does":"Interruptingcow provides a context manager and decorator to enforce execution timeouts in Python by raising an exception when code runs longer than a specified duration. It uses the operating system's SIGALRM signal to interrupt execution, allowing you to gracefully handle slow operations or infinite loops.\n\nThe package supports nested timeouts (where inner timeouts can be smaller than outer ones) and quota-based time allocation, letting you share a fixed time budget across multiple invocations. However, it only works on the main thread and cannot coexist with other code that uses SIGALRM signals, making it unsuitable for multi-threaded applications or certain profiling scenarios.","worth_installing":"No. The package is abandoned (last release 2018, no maintenance for 3090 days) with no active support. While it has no known vulnerabilities and the MIT license is permissive, the signal-based approach is fundamentally limited to the main thread and incompatible with modern async patterns. For new projects, use a maintained alternative like `timeout-decorator`, `signal-timeout`, or language-native async timeout mechanisms."},"id":"interruptingcow","links":{"html":"https://skillfed.io/packages/interruptingcow","md":"https://skillfed.io/packages/interruptingcow.md","pypi":"https://pypi.org/project/interruptingcow/"},"maintenance":{"status":"abandoned"},"meta":{"latest_release":"2018-02-27","license_spdx":null,"license_treatment":"permissive","name":"interruptingcow","python_support":"unspecified","summary":"A watchdog that interrupts long running code."},"popularity":{"monthly_downloads":169283,"position":10422,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.8"}
