Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

ppndimage

N-dimensional image processing kernels, in POST Python.

ppndimage reimplements scipy.ndimage in POST Python — every kernel is fully-typed Python that runs under the standard CPython interpreter and compiles ahead-of-time to native code (a plain C shared library and a NumPy ufunc extension module) with the POST Python reference compiler.

Status: Planning — this repository is scaffolding, ready for an agent or contributor to claim. It is part of the PostSciPy effort to rebuild SciPy one subpackage at a time as the compiler's proving ground.

Primary compiler pressure this package generates: stencil kernels; dynamic-rank iteration later.

Start here

  1. Read the POST Python spec and the PostSciPy roadmap (package map, working rules, capability matrix).
  2. Copy the layout of ppspecial, the exemplar package: ppndimage/ sources, tests/, scripts/build_native.py, scripts/build_ext.py, a pixi workspace with test / build-native / build-ext tasks, a git dependency on postpython, and a ROADMAP.md tracking targets and upstream requests.
  3. Start with a slice from "Compiles today" below; land it as a small PR with tests in both execution modes.

First slices

Compiles today

  • Fixed-footprint 2-D stencils (m,n)->(m,n) with explicit edge handling: uniform_filter, fixed-radius gaussian_filter, sobel, laplace
  • Nearest-neighbour shift/zoom for 2-D

Blocked on compiler capabilities

File these as postpython issues with minimal reproducers when you start on them — the filing is part of the work and drives the compiler roadmap.

  • Rank-generic N-D filtering — needs dynamic-rank (AnyShape) iteration in kernels; file the reproducer when starting
  • generic_filter — callable parameters

Working rules (summary)

  • Pure POST Python: no compiler-specific escape hatches; every kernel runs interpreted and compiled.
  • scipy is the reference, never a runtime dependency. Tests may use it optionally; prefer deterministic hardcoded reference values.
  • Compiler gaps go upstream as postpython issues with reproducers, not silent workarounds.
  • Verify against a postpython checkout on main.
  • Document accuracy targets and reference sources per function.

The full rules and the definition of done live in the PostSciPy roadmap.

About

N-dimensional image processing kernels, in POST Python. POST Python rebuild of scipy.ndimage (PostSciPy effort).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors