passagemath-objects
passagemath: Sage objects, elements, parents, categories, coercion, metaclasses
What it is and what it does
passagemath-objects is a modularized subset of mathematical software, extracted and distributed as a standalone pip-installable package. It provides foundational object-oriented infrastructure: the element/parent framework for representing mathematical objects, the category system for organizing mathematical structures, the coercion machinery for automatic type conversion, and the metaclasses that power the type hierarchy. This package is part of the passagemath fork, created in October 2024 to bring mathematical software into closer alignment with the scientific Python ecosystem while maintaining GPL-2.0-or-later licensing.
The package is intended for developers who need this object model without installing a full distribution. It depends on gmpy2 (arbitrary-precision arithmetic), cysignals (signal handling for interrupts), and typing_extensions for runtime type hints. Binary wheels are available for macOS, Linux (including musl), and Windows x86_64, though full Windows support still requires WSL or virtualization. The package is actively maintained with support for Python 3.11 through 3.14.
Use it for:
- Building mathematical libraries that need the element/parent framework and coercion system without a full distribution.
- Integrating mathematical objects into scientific Python workflows using gmpy2 and other ecosystem packages.
- Developing educational software that leverages the category system and mathematical object hierarchy.
- Creating domain-specific mathematical abstractions that inherit from the provided base classes and metaclasses.
- Prototyping mathematical algorithms using the type coercion and dispatch mechanisms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a foundational object system, element/parent framework, categories, and coercion machinery as a standalone, pip-installable Python library.
Yes, if you need this object system and coercion framework in lightweight, modular form. The package is actively maintained with no known vulnerabilities and offers binary wheels for major platforms. The GPL-2.0-or-later copyleft license is a hard constraint for proprietary projects; for open-source and academic use, it is straightforward. Install friction is moderate due to compiled dependencies, but pre-built wheels reduce friction on standard platforms.
Install
passagemath-objects on PyPI
pip
pip install passagemath-objectsuv
uv add passagemath-objectspoetry
poetry add passagemath-objectsInstalling passagemath-objects
Before you install
Medium install friction due to compiled dependencies (gmpy2, cysignals) requiring system libraries when building from source. Actively maintained with recent releases; last commit 2026-08-14. Supports Python 3.11–3.14.
License in practice
GPL-2.0-or-later copyleft license requires derivative works to be open-source under compatible terms; suitable for academic and open-source projects but requires legal review for proprietary use.
Quickstart
pip install passagemath-objects
from passagemath_objects.structure.element import Element
from passagemath_objects.structure.parent import Parent
Requires Python 3.11–3.14; gmpy2 and cysignals dependencies may require system libraries (gmp, mpfr, mpc) when building from source.
Verify before relying
- Whether the coercion system and metaclass framework are stable for production use outside their original context.
- Performance characteristics and memory footprint of the extracted subset.
- Compatibility guarantees with upstream projects and versioning stability.
Package facts
| License | GPL-2.0-or-later (copyleft) |
| Python support | supports the current Python release (<3.15,>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — gmpy2, cysignals, typing_extensions |
| Maintenance | actively maintained — 5 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 77,809/month — #14,492 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: passagemath_objects-10.8.9-cp311-cp311-macosx_13_0_arm64.whl; passagemath_objects-10.8.9-cp311-cp311-macosx_13_0_x86_64.whl; passagemath_objects-10.8.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; passagemath_objects-10.8.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; passagemath_objects-10.8.9-cp311-cp311-musllinux_1_2_aarch64.whl; passagemath_objects-10.8.9-cp311-cp311-musllinux_1_2_x86_64.whl; passagemath_objects-10.8.9-cp311-cp311-win_amd64.whl; passagemath_objects-10.8.9-cp312-cp312-macosx_13_0_arm64.whl; passagemath_objects-10.8.9-cp312-cp312-macosx_13_0_x86_64.whl; passagemath_objects-10.8.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; passagemath_objects-10.8.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; passagemath_objects-10.8.9-cp312-cp312-musllinux_1_2_aarch64.whl; passagemath_objects-10.8.9-cp312-cp312-musllinux_1_2_x86_64.whl; passagemath_objects-10.8.9-cp312-cp312-win_amd64.whl; passagemath_objects-10.8.9-cp313-cp313-macosx_13_0_arm64.whl; passagemath_objects-10.8.9-cp313-cp313-macosx_13_0_x86_64.whl; passagemath_objects-10.8.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; passagemath_objects-10.8.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; passagemath_objects-10.8.9-cp313-cp313-musllinux_1_2_aarch64.whl; passagemath_objects-10.8.9-cp313-cp313-musllinux_1_2_x86_64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
passagemath-categoriesProvides Sage categories, basic rings,…
copyleft · top 15,000 on PyPI
passagemath-gapProvides Python interfaces to the GAP…
copyleft · top 15,000 on PyPI
audmathaudmath provides mathematical functions…
permissive · top 15,000 on PyPI
python-flintPython bindings for FLINT and Arb that provide…
copyleft · top 15,000 on PyPI
cypari2cypari2 provides a Python interface to PARI/GP,…
copyleft · top 15,000 on PyPI
symenginePython wrappers for SymEngine, a fast C++…
permissive · top 15,000 on PyPI
traitletsTraitlets provides typed attributes for Python…
permissive · top 1,000 on PyPI