$npx skillfedfor your agent

cysignals

Interrupt and signal handling for Cython

With conditionsPyPI SystemReleased Oct 2025728.3K downloads / mocopyleft licensePlatform wheel

Decision gist · record as of 2026-08-14

platform wheels — cysignals-1.12.6-cp312-cp312-macosx_11_0_arm64.whl · cysignals-1.12.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl · cysignals-1.12.6-cp312-cp312-musllinux_1_2_x86_64.whl
v1.12.6 · released 2025-10-30 · Python >=3.12

Yes, if you are writing Cython code that runs for extended periods and needs to respond to interrupts. The package is actively maintained, has no runtime dependencies, and is essential for any Cython project that must be user-interruptible. The LGPLv3+ license is permissive for linking into proprietary extensions. Install only if you meet the Cython >= 3.1 and Python >= 3.12 requirements.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Cython >= 3.1 and Python >= 3.12; intended for use in Cython modules (.pyx files), not standalone Python code.
  • Medium install friction due to compiled wheel distribution across multiple platforms and Python versions (3.12–3.14).
  • Active maintenance with recent commits and no runtime dependencies simplifies deployment once installed.

License · maintenance · safety

copyleft license (copyleft) — LGPLv3+ copyleft license requires that derivative works and modifications be distributed under compatible terms; linking cysignals into proprietary Cython extensions is permitted under LGPL's library exception, but modifications to cysignals itself must remain open.

last release 2025-10-30 (288 days) · last repo commit 2026-04-11 · 44 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 728,283 downloads/mo, #5,213 on PyPI

Verify before relying

pip install cysignals

# In a .pyx file:
from cysignals.signals cimport sig_on, sig_off

cdef long fib(long n):
    sig_on()
    # Long-running computation here
    result = compute_fib(n)
    sig_off()
    return result
  • Whether the package supports Python 3.11 or earlier despite the description stating Python >= 3.12 requirement.
  • Performance overhead of signal checking in tight loops compared to unguarded Cython code.
  • Compatibility with non-CPython implementations (PyPy, etc.) beyond CPython support shown in classifiers.
Same gist for agents: .md · .json

What it is and what it does

cysignals is a Cython extension that solves a fundamental problem: Cython code normally skips interrupt checks for speed, making long-running loops impossible to stop with CTRL-C. The package provides decorators and context managers (sig_on/sig_off) that tell Cython to check for pending signals at safe points, allowing interrupts and other OS signals to be handled gracefully. It also manages error recovery and provides hooks for custom signal handling.

The package is maintained by the SageMath project and targets developers writing performance-critical Cython code who need to remain responsive to user interrupts and system signals. It requires Cython >= 3.1 and Python >= 3.12, with prebuilt wheels for macOS, Linux (including musl), and Windows across multiple architectures. No runtime dependencies means installation is straightforward once the compiled extension is available for your platform.

Use it for

  • Long-running numerical computations in Cython that must respond to CTRL-C without hanging the process.
  • Building interruptible scientific libraries (e.g., SageMath) where user cancellation is essential.
  • Wrapping C/C++ algorithms in Cython while maintaining signal safety and clean shutdown behavior.
  • Implementing custom signal handlers in Cython code that need to coexist with Python's signal machinery.
  • Debugging Cython code by catching and reporting signals that occur during execution.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you are writing Cython code that runs for extended periods and needs to respond to interrupts.

The package is actively maintained, has no runtime dependencies, and is essential for any Cython project that must be user-interruptible. The LGPLv3+ license is permissive for linking into proprietary extensions. Install only if you meet the Cython >= 3.1 and Python >= 3.12 requirements.

Install

cysignals on PyPI

Before you install

Medium install friction due to compiled wheel distribution across multiple platforms and Python versions (3.12–3.14). Active maintenance with recent commits and no runtime dependencies simplifies deployment once installed.

Requires Cython >= 3.1 and Python >= 3.12; intended for use in Cython modules (.pyx files), not standalone Python code.

License in practice

LGPLv3+ copyleft license requires that derivative works and modifications be distributed under compatible terms; linking cysignals into proprietary Cython extensions is permitted under LGPL's library exception, but modifications to cysignals itself must remain open.

Quickstart

pip install cysignals

# In a .pyx file:
from cysignals.signals cimport sig_on, sig_off

cdef long fib(long n):
    sig_on()
    # Long-running computation here
    result = compute_fib(n)
    sig_off()
    return result

Verify before relying

  • Whether the package supports Python 3.11 or earlier despite the description stating Python >= 3.12 requirement.
  • Performance overhead of signal checking in tight loops compared to unguarded Cython code.
  • Compatibility with non-CPython implementations (PyPy, etc.) beyond CPython support shown in classifiers.

Package facts

Licensecopyleft license copyleft
Python supportSupports the current Python release >=3.12
Install frictionMedium. Platform-specific wheel
Runtime dependenciesNone
MaintenanceActively maintained 288 days since the last release
Last repo commit
First released
Downloads728,283 / month, #5,213 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 6 - MatureIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)Operating System :: MacOS :: MacOS XOperating System :: POSIXProgramming Language :: CProgramming Language :: CythonProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: DebuggersTopic :: System

Evidence: cysignals-1.12.6-cp312-cp312-macosx_11_0_arm64.whl; cysignals-1.12.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; cysignals-1.12.6-cp312-cp312-musllinux_1_2_x86_64.whl; cysignals-1.12.6-cp312-cp312-win_amd64.whl; cysignals-1.12.6-cp312-cp312-win_arm64.whl; cysignals-1.12.6-cp313-cp313-macosx_11_0_arm64.whl; cysignals-1.12.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; cysignals-1.12.6-cp313-cp313-musllinux_1_2_x86_64.whl; cysignals-1.12.6-cp313-cp313-win_amd64.whl; cysignals-1.12.6-cp313-cp313-win_arm64.whl; cysignals-1.12.6-cp314-cp314-macosx_11_0_arm64.whl; cysignals-1.12.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; cysignals-1.12.6-cp314-cp314-musllinux_1_2_x86_64.whl; cysignals-1.12.6-cp314-cp314t-macosx_11_0_arm64.whl; cysignals-1.12.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; cysignals-1.12.6-cp314-cp314t-musllinux_1_2_x86_64.whl; cysignals-1.12.6-cp314-cp314t-win_amd64.whl; cysignals-1.12.6-cp314-cp314t-win_arm64.whl; cysignals-1.12.6-cp314-cp314-win_amd64.whl; cysignals-1.12.6-cp314-cp314-win_arm64.whl

Tags

Capabilities
cython interrupt handlingcython signal managementcython ctrl-c supportcython signal handlerscython exception handlingcython keyboard interruptcython async signal safe
Topics
cython-extensionsignal-handlinginterrupt-management

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “cython interrupt handling”

  • cysignalsProvides interrupt and signal handling mechanisms for Cython code,…
  • jaraco.contextProvides decorators and context managers for exception handling,…
  • lib-cli-exit-toolsProvides portable signal handling, exception-to-exit-code mapping,…

Give your agent the search over MCP, or paste the wish link into any chat.

More System packages

filelock Worth it
PyPI · Libraries · released Aug 2026

Provides a platform-independent file locking mechanism to coordinate access to files across processes and threads.

MITpure Python · 3.10+
717.1Mdownloads / mo
distro Worth it
PyPI · Python Modules · released Dec 2023

Distro provides a reliable, machine-readable API to query the Linux or BSD distribution name, version, codename, and other OS platform details, replacing Python's deprecated `platform.linux_distribution` function.

Install it if you need to detect or report the Linux/BSD distribution your code runs on.

Apache-2.0pure Python · 3.6+
417.9Mdownloads / mo
psutil Worth it
PyPI · Libraries · released Jan 2026

psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.

permissive licensecompiled wheel · 3.6+
387.6Mdownloads / mo
pexpect With conditions
PyPI · Software Development · released Nov 2023

Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.

ISCpure Pythonaging
200.8Mdownloads / mo
aiofile Worth it
PyPI · Libraries · released Aug 2026

Provides asynchronous file I/O operations for asyncio programs, with automatic selection of the best available backend (io_uring, libaio, thread-based, or pure Python) depending on your system.

Apache-2.0pure Python · 3.11+
75.4Mdownloads / mo
portalocker Worth it
PyPI · Libraries · released Aug 2026

Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.

Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.

BSD-3-Clausepure Python · 3.10+
65.1Mdownloads / mo

See also interruptingcow · pysoem · pysigset · async-interrupt · lib-cli-exit-tools · stopit · psygnal · aiosignal · django-signal-webhooks · neurokit2