Skip to main content

Obsessive Coder's Dependency Toolkit — Python utilities for array manipulation, GPU dispatch, image I/O, morphology, and plotting.

Project description

ocdkit

A toolkit for array manipulation, GPU dispatch, image I/O, spatial operations, morphology, and plotting.

Install

pip install ocdkit             # core (numpy, scipy, scikit-image, tifffile, matplotlib)
pip install ocdkit[torch]      # + PyTorch GPU support
pip install ocdkit[plot]       # + ncolor, cmap, opt_einsum
pip install ocdkit[spatial]    # + numba, fastremap (contour extraction, skeletonization)
pip install ocdkit[all]        # everything

Modules

Module What's in it
ocdkit.array rescale, safe_divide, is_integer, get_module, unique_nonzero
ocdkit.gpu resolve_device, empty_cache, torch_GPU, torch_CPU
ocdkit.io imread, imwrite, getname, check_dir
ocdkit.spatial kernel_setup, get_neighbors, get_neigh_inds, masks_to_affinity, get_contour, boundary_to_masks
ocdkit.morphology find_boundaries, skeletonize
ocdkit.measure crop_bbox, bbox_to_slice, make_square, diameters
ocdkit.plot figure, image_grid, split_list, colorize, rgb_flow, vector_contours, apply_ncolor, color_swatches, recolor_label, add_label_background

Quick start

from ocdkit.array import rescale
from ocdkit.gpu import resolve_device
from ocdkit.plot import figure, image_grid

device = resolve_device()  # auto-detect CUDA / MPS / CPU

Performance tips

Pin numba's JIT cache to local disk

If your project source lives on a network filesystem (SMB / NFS), set NUMBA_CACHE_DIR to a local-disk location. By default numba writes its JIT cache to __pycache__ next to the source file, which on a NAS-mounted tree means dozens of small SMB ops per fresh subprocess — several seconds of overhead on every cold import.

ocdkit auto-applies $HOME/.cache/numba as the default if you haven't set it (see src/ocdkit/__init__.py), but for shells, test runners, and non-ocdkit code, set it explicitly:

# Linux / macOS — add to ~/.zshrc, ~/.bashrc, or ~/.profile
export NUMBA_CACHE_DIR="$HOME/.cache/numba"
# Windows — add to $PROFILE
[Environment]::SetEnvironmentVariable('NUMBA_CACHE_DIR', "$env:USERPROFILE\.cache\numba", 'User')

Compiled artifacts are machine-local anyway (CPU- and Python-version specific), so they don't belong on shared NAS regardless of perf.

License

BSD-3-Clause

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ocdkit-0.0.6.tar.gz (830.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ocdkit-0.0.6-py3-none-any.whl (808.8 kB view details)

Uploaded Python 3

File details

Details for the file ocdkit-0.0.6.tar.gz.

File metadata

  • Download URL: ocdkit-0.0.6.tar.gz
  • Upload date:
  • Size: 830.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for ocdkit-0.0.6.tar.gz
Algorithm Hash digest
SHA256 65b511cc5ee43151790b1b29c339af8351eceb5b905f5ea94b9f21cd94e90e75
MD5 ab4c6e0605acdaf42b68ed7aa4e631fb
BLAKE2b-256 0ed1bf5bfd2e458d6d290a0b322ccd6293143e818eeb0cdabed0d8845fce5342

See more details on using hashes here.

File details

Details for the file ocdkit-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: ocdkit-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 808.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for ocdkit-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1ebec557ae8a8adb6aeb3a0dee33828394395ec014b1fd41ba5f95bfbcaeeba7
MD5 8b4363ad938c2b31f98c4976d090bf9d
BLAKE2b-256 bb66a40646ad571957557b5c020c24e07a25045e55d5242730f35218a2fe7610

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page