cysignals 1.12.6


pip install cysignals

  Latest version

Released: Oct 30, 2025

Project Links

Meta
Author: The Sage Developers
Requires Python: >=3.12

Classifiers

Development Status
  • 6 - Mature

Intended Audience
  • Developers

License
  • OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)

Operating System
  • POSIX
  • MacOS :: MacOS X

Programming Language
  • C
  • Cython
  • Python
  • Python :: 3
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14
  • Python :: Implementation :: CPython

Topic
  • System
  • Software Development :: Debuggers
https://readthedocs.org/projects/cysignals/badge/?version=latest

Cython and interrupts

When writing Cython code, special care must be taken to ensure that the code can be interrupted with CTRL-C. Since Cython optimizes for speed, Cython normally does not check for interrupts. For example, code like the following cannot be interrupted in Cython:

while True:
    pass

The cysignals package provides mechanisms to handle interrupts (and other signals and errors) in Cython code.

Requirements

  • Python >= 3.12

  • Cython >= 3.1

  • Sphinx >= 1.6 (for building the documentation)

Changelog

1.12.0 (release candidate)

  • Remove optional compile-time dependency on PARI/GP. [#166]

1.11.4 (2023-10-07)

  • Include generated configure script in the sdist again.

1.11.3 (2023-10-04)

  • Add support for Cython 3. [#174, #176, #182, #187]

  • Add support for Python 3.12.

  • Replace fprintf by calls to write, which is async-signal-safe according to POSIX. [#162]

  • Introduce a general hook to interface with custom signal handling. [#181]

1.11.2 (2021-12-15)

  • Drop assembly code added after 1.10.3 that is not portable.

1.11.0 (2021-11-26)

  • Drop Python 2 support; bump minimum Python version to 3.6. [#142]

  • Fixed compilation with glib 3.34. [#151]

  • Improved testing. [#139, #152, #154]

1.10.3 (2021-03-16)

  • Improved installation of cysignals with pip install -e. [#130]

  • Fixed compilation of OpenMP modules that also use cysignals. [#128]

  • Fixed segmentation fault that could occur when sig_occurred() is called recursively during garbage collection. [#127]

  • Improved error reporting of signals that occurred inside sig_on() as opposed to outside them.

  • Fixed bug in the cysignals_example package. [#113]

For changes in previous releases, see the best source available is to compare git tags: https://github.com/sagemath/cysignals/tags

Wheel compatibility matrix

Platform CPython 3.12 CPython 3.13 CPython 3.14 CPython (additional flags: t) 3.14
macosx_11_0_arm64
manylinux2014_x86_64
manylinux_2_17_x86_64
manylinux_2_28_x86_64
musllinux_1_2_x86_64
win_amd64
win_arm64

Files in release

No dependencies