# Albucore Public API

> Albucore star-exported API (__all__), routers vs albucore.functions shims, and dependents such as Albumentations. Use when changing exports, documenting API, or deciding what belongs in package __all__.

- Skill: `albumentations-team/albucore-public-api` (Agent Skill)
- Install (CLI): `npx skillmds@latest add albumentations-team/albucore-public-api`
- Raw SKILL.md: https://api.skillmd.com/api/skills/albumentations-team/albucore-public-api/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: albumentations-team (https://skillmd.com/u/albumentations-team)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/albumentations-team/albucore-public-api

---


# Albucore Public API

## Star Import

`from albucore import *` follows `albucore/__init__.py`, which merges `__all__` from `functions`, `decorators`, `geometric`, and `utils`, plus metadata.

Most routers live in `albucore/functions.py` `__all__`, re-exported from `arithmetic`, `lut`, `normalize`, `convert`, `ops_misc`, and `stats`. Geometric routers live in `albucore/geometric.py` `__all__` and are separately merged by package `__init__`; `resize3d` is one such router.

## Classification Doc

Use `docs/public-api.md` for router classification and explicit `from albucore.functions import ...` shims such as `*_opencv`, `*_numpy`, NumKong helpers, and LUT plumbing.

## Dependents

If Albumentations or another downstream package imports a symbol, it must be either:

- On package `__all__` for star-import compatibility, or
- Documented with an explicit import path such as `albucore.functions`.

Example: `sz_lut` and `apply_uint8_lut` are public routers on `__all__` and are implemented in `albucore/lut.py`.

## Adding an Export

1. Implement in the appropriate submodule (`arithmetic.py`, `lut.py`, `geometric.py`, etc.).
2. For a regular router, ensure `from submodule import *` in `functions.py` exposes the name and append it to `functions.__all__`, sorted or grouped with peers.
3. For a geometric router, append it to `geometric.__all__`; do not add a compatibility shim to `functions.py` unless there is a separate public-API decision.
4. Confirm `from albucore import <name>` succeeds and that the name occurs once in package `__all__`.
5. Update `docs/public-api.md` if classification changes.

