Skip to content

omnibenchmark/obkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

obkit

obkit status badge

Utility toolkit for omnibenchmark modules and snakemake workflows. Available for Python and R. Zero or near-zero dependencies.

Modules

module purpose
logger Structured JSONL lifecycle event logging — drop phase-boundary anchors into a log file so downstream tooling can attribute profiler samples to named phases of a rule. Wire format spec.
prof Parse and align profiler output (denet, Snakemake bench files) with logger events for per-phase resource attribution. (in progress)

Language implementations

Python

logger and prof are submodules of the obkit package:

from obkit.logger import init_logger, emit
from obkit.prof import ...       # coming soon

Zero dependencies — pure stdlib.

pip install obkit

R

obkit is a single package. Modules map to function-prefix groups: logger_init() / logger_emit() for logger, prof_*() for prof. This is idiomatic R — there are no submodule namespaces, but the prefix makes the grouping explicit.

library(obkit)
logger_init("/path/to/logs")
logger_emit("align", "start")

One dependency: jsonlite.

devtools::install("r/obkit")

Documentation

Repository layout

python/obkit/
  logger/      # submodule: init_logger, emit
  prof/        # submodule: (in progress)
r/obkit/
  R/
    logger.R   # logger_init, logger_emit
    prof.R     # prof_* (in progress)
docs/
  spec-logger.md
  usage-logger.md
  usage-prof.md

Status

v0.1, pre-release. Wire format is stable; API may still shift.

About

utilities for omnibenchmark modules

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors