Published March 31, 2026
| Version v0.2.0a1
Software
Open
Gratopy v0.2.0a1
Description
Gratopy v0.2.0a1
This is an alpha release that introduces an experimental operator API for Radon transforms together with substantial maintenance, CI, packaging, and documentation improvements since v0.1.0.
Highlights
- Added an experimental operator-based Radon API via
gratopy.operator.Radon. - Added a configurable OpenCL kernel interface for operator-backed experimentation.
- Improved testing, typing, packaging, CI, and documentation across the project.
- Added Docker and development-environment improvements.
Experimental operator API
- Introduced operator algebra infrastructure in
gratopy.operator.base. - Added a concrete experimental
Radonoperator with:- forward projection,
- adjoint access via
T, - optional input/output shape metadata,
- NumPy input coercion,
- queue-aware application,
- support for operator composition such as
R.T * R.
- Added geometry helper classes in
gratopy.utilitiesfor operator usage:Angles,ImageDomain,Detectors,ExtentPlaceholder.
- Prepared the extent placeholder interface for future operator-API support. For
v0.2.0a1, placeholders are intentionally disabled and currently raiseNotImplementedErrorin the experimental operator API. - Added shared OpenCL operator infrastructure:
OpenCLKernelSpec,- internal
_OpenCLOperator, - shared OpenCL program cacheing,
- default OpenCL-backed
apply_to()pipeline with hook-based customization.
- Refactored
Radonto execute directly through the new OpenCL operator base instead of the legacyProjectionSettingsexecution path. - Added support for forwarding keyword arguments through composite operators, enabling calls such as
gram.apply_to(x, queue=queue).
Custom kernel support
- Added support for custom OpenCL kernel bundles through
OpenCLKernelSpec. - Added end-to-end tests for custom kernels covering:
- custom kernel loading from source files,
- forward-kernel execution,
- adjoint-kernel dispatch,
- cache isolation by kernel source signature.
Documentation
- Added a dedicated operator API page documenting:
- the experimental status of the operator API,
- basic Radon usage,
- operator algebra,
- utility geometry classes,
_OpenCLOperatorsubclassing hooks,- custom kernel usage.
- Unified the reference section under a single Reference manual entry.
- Added reference documentation for:
gratopy.operator,gratopy.operator.base,gratopy.operator.projection,gratopy.operator.opencl,- selected utility geometry classes from
gratopy.utilities.
- Expanded the documentation of:
Radon,OpenCLKernelSpec,Angles,ImageDomain,Detectors,ExtentPlaceholder.
- Added README notes and examples for the experimental operator syntax.
- Fixed and improved general documentation infrastructure, including Read the Docs integration and autodoc build behavior.
Testing, typing, and quality improvements
- Expanded the test suite and refactored tests for improved reliability.
- Improved dtype handling and shape checks in projection code.
- Added or refined type hints throughout the code base.
- Added and integrated:
ruff,mypy,pytest-cov,pytest-xdist.
- Improved formatting, linting, and code consistency across the repository.
- Added OpenCL-related test diagnostics and improved CI tolerance for reduced floating-point precision on some platforms.
Packaging and build system
- Migrated project management and packaging to
uvwithpyproject.toml. - Removed old setuptools-based build files.
- Centralized version metadata into a single Python source of truth via
gratopy/_version.py. - Raised the minimum supported Python version to 3.10.
- Improved dependency handling, including Python-version-specific SciPy and NumPy constraints where needed.
CI / infrastructure / Docker
- Introduced continuous integration workflows and expanded test coverage in CI.
- Added Python 3.11 to CI.
- Improved workflow separation for tests, linting, and formatting.
- Updated Docker support, including GPU-oriented images and Jupyter/X11-related usage improvements.
- Added support notes for Intel GPUs and POCL-related fixes.
Internal refactors and maintenance
- Introduced a shared geometry enum and further internal cleanup/refactors.
- Improved OpenCL kernel access patterns and program lookup internals.
- Added module-global program cacheing for legacy paths.
- Refactored parts of the projection internals for more explicit forward/ adjoint handling.
- Various bug fixes, cleanups, and smaller maintenance improvements.
Notes
- The operator API introduced in this release is experimental. It is not yet subject to the same stability expectations as the legacy
ProjectionSettingsinterface, and backward-incompatible changes may still occur without a full deprecation cycle. - Fanbeam support in the operator API is not yet implemented at the same level as the new Radon operator.
- Extent placeholders are not yet implemented in the operator API. Although the helper enum and related utility classes are already present, placeholder- based extent resolution is deferred to a later release.
List of included PRs
- Added Python 3.11 to test pipeline by @behackl in https://github.com/kbredies/gratopy/pull/1
- chore: Added virtual environment directory to gitignore by @behackl in https://github.com/kbredies/gratopy/pull/2
- Added Dockerfile supporting GPUs, Jupyter notebooks plus corresponding instructions by @behackl in https://github.com/kbredies/gratopy/pull/3
- Maintenance updates + various improvements by @behackl in https://github.com/kbredies/gratopy/pull/6
- Maintenance updates, part 2: formatting + linting by @behackl in https://github.com/kbredies/gratopy/pull/7
- Maintenance updates, part 3: document changes to infrastructure + fix docker build by @behackl in https://github.com/kbredies/gratopy/pull/8
- Fix documentation, reenable autodoc by @behackl in https://github.com/kbredies/gratopy/pull/9
- updated and fixed dockerfile by @behackl in https://github.com/kbredies/gratopy/pull/11
- Various Quality of Life improvements + refactors by @behackl in https://github.com/kbredies/gratopy/pull/13
- Dependency and CI updates by @behackl in https://github.com/kbredies/gratopy/pull/14
- ci(rtd): install pocl OpenCL backend for ReadTheDocs builds by @behackl in https://github.com/kbredies/gratopy/pull/16
- Implement experimental operator-based syntax by @behackl in https://github.com/kbredies/gratopy/pull/12
- Introduce utility class for weighted angles by @behackl in https://github.com/kbredies/gratopy/pull/15
- Prepare new (pre-)release: v0.2.0a1 by @behackl in https://github.com/kbredies/gratopy/pull/17
New Contributors
- @behackl made their first contribution in https://github.com/kbredies/gratopy/pull/1
Full Changelog: https://github.com/kbredies/gratopy/compare/v0.1.0...v0.2.0a1
Files
kbredies/gratopy-v0.2.0a1.zip
Files
(1.5 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:eaac61dd9ddaeffe6df7c1350dc0f51a
|
1.5 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/kbredies/gratopy/tree/v0.2.0a1 (URL)
Funding
- FWF Austrian Science Fund
- Regularization Graphs for Variational Imaging P 29192
- FWF Austrian Science Fund
- Partial Differential Equations - Modelling, Analysis, Numerical Methods and Optimization W 1244
Software
- Repository URL
- https://github.com/kbredies/gratopy