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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ocdkit-0.0.4.tar.gz
  • Upload date:
  • Size: 388.2 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.4.tar.gz
Algorithm Hash digest
SHA256 318e7b8e6f3335de4d31a1bfb5f9d570558b22a2f38d3db905f38a0071529644
MD5 5a48c402d07dd4d2e7f3c2298a6f2f46
BLAKE2b-256 8a6874dc1fb6032a20d17815a5ddc39e3d5776b4c69ed1b2575885d52064aa77

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ocdkit-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 361.0 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 da26b5e586dfc2b8859fed3e666c4dc0987bf375fd7ba08c754225e3af6c8bd3
MD5 df19fc30b0d60a349354a62d33412ab1
BLAKE2b-256 7894d53f5bb89df06cfb35951870b4ce579291a0192edc78de719681f0cae3e2

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