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.7.tar.gz (830.8 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.7-py3-none-any.whl (809.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ocdkit-0.0.7.tar.gz
  • Upload date:
  • Size: 830.8 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.7.tar.gz
Algorithm Hash digest
SHA256 1afaddecc5e93aa264d1cc210a94472af67dc91df1a27d802e40de0eeb95cc0c
MD5 40a77b50067ac7c1460a0690dee33ade
BLAKE2b-256 e161cf876da24962f097dce781675bdaedff53147161249c6ace5eb35bac59df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ocdkit-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 809.1 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 db2bdeca328ab1f8989f9109563225b0ddfb12ebc0a7ed4bbe43927bf891e20b
MD5 ce20f9bfc8e35756df53806491f47bfc
BLAKE2b-256 eb217a84e33df96bfb1c815d5880c2b436cabd6a22ac9b50229fc63f4387382e

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