Skip to main content

CALF - CAPIO Logging Facility

CALF - CApio Logging Facility

C++ 17 Python 3.10-3.14

C++ tests Python tests

Calf is a structured, header-only C++17 logging library for the CAPIO ecosystem. It supports indented JSON output and an opt-in streaming protobuf format for lower-overhead trace creation.

Calf is designed to work in two distinct environments:

  • STL safe processes: uses std::ofstream for I/O (StlLogger)
  • CLI loggers (STL safe): logs to CLI (StdOutLogger)
  • NON STL safe processes: uses raw syscalls whenever STL is not safe (SyscallLogger) Both backends share the same JSON structure and produce identical output formats.

The C++ protobuf format works with both StlLogger and SyscallLogger. It uses Google's generated Protobuf C++ classes and writes .pb files matching calf/protobuf/calf_trace.proto. Each file is a valid calf.proto.TraceFile; flat scope-enter, event, and scope-exit records can be streamed and reconstructed through scope_id and parent_scope_id.

CALF Inspector

CALF includes an interactive Inspector for exploring and analysing structured trace logs. Its responsive web interface provides call-tree navigation, lazy trace loading, search, timing details, and aggregated statistics.

See the CALF Inspector documentation for installation, usage and web-server options.

Requirements

  • C++17 or later
  • CMake 3.16 or later
  • Linux for SyscallLogger backend
  • Python 3.10 or later for the Python bindings and Inspector

Testing

The GoogleTest C++ suites and Python binding tests run on Linux and macOS. The raw syscall logger suite is built only on Linux because that backend is not supported on macOS.

cmake -S . -B build -DCALF_TESTS=ON
cmake --build build --parallel
ctest --test-dir build --output-on-failure

CALF_TESTS=ON enables CALF_PYTHON_TESTS by default and builds the Python extension needed by those tests. To run only the Python binding test target:

cmake --build build --target calf_python_tests

Output format

Each log scope opened by START_LOG becomes one JSON object in a root array. Inner LOG calls populate the events array. Scopes close with a ts_exit timestamp.

[
  {
    "invoker": "capio_openat",
    "file": "posix/open.cpp",
    "line": 77,
    "ts_enter": 42,
    "args": "dirfd=4, pathname=/tmp/foo, flags=0",
    "events": [
      { "ts": 43, "invoker": "get_file_location", "file": "location.hpp", "line": 96, "args": "path=/tmp/foo" },
      { "ts": 44, "invoker": "get_file_location", "file": "location.hpp", "line": 96, "args": "File found on node host0" }
    ],
    "ts_exit": 45
  }
]

Each thread writes to its own log file under the log directory, named after the thread ID.

Protobuf output

Select protobuf by linking the application target with calf::protobuf. The existing logger include and macro interface remain unchanged:

target_link_libraries(my_server PRIVATE calf::protobuf)
#include <calf/StlLogger.h>

void handle_request(const char *path) {
    START_LOG(calf_current_tid(), "path=%s", path);
    LOG("processing");
}

CMake uses an installed Google Protobuf package when available and otherwise downloads it from source through FetchContent. Without the calf::protobuf link dependency, StlLogger.h and SyscallLogger.h produce JSON. The syscall backend writes serialized protobuf bytes through raw syscalls; constructing the generated messages still uses Google's C++ runtime and its allocations.

Integration

CMake FetchContent

include(FetchContent)

FetchContent_Declare(
        calf
        GIT_REPOSITORY https://github.com/High-Performance-IO/calf.git
        GIT_TAG <commit-sha>   # pin to a specific commit for reproducible builds
        GIT_SHALLOW TRUE
)

set(CALF_LOG ON CACHE BOOL "" FORCE)
set(CALF_BUILD_PYTHON_BINDINGS OFF CACHE BOOL "" FORCE)
set(CALF_TESTS OFF CACHE BOOL "" FORCE)

FetchContent_MakeAvailable(calf)

Then link each target to the appropriate backend:

# Server binary
target_link_libraries(my_server PRIVATE calf::stl)

# POSIX syscall interceptor (.so)
target_link_libraries(my_interceptor PRIVATE calf::syscall)

CMake options

Flag Default Description
CALF_LOG ON Enable logging macros. When disabled, logging macros are no-ops.
CALF_TESTS OFF Build and register the GoogleTest suites with CTest.
CALF_PYTHON_TESTS Value of CALF_TESTS Build the Python extension and register its binding tests.
CALF_BUILD_PYTHON_BINDINGS OFF Build and install the private calf._py_calf Python extension.
CALF_PROTOBUF ON Build the Google Protobuf C++ logger and calf::protobuf target.
CALF_DEFAULT_COMPONENT_NAME calf Component directory and CLI header name used by configured targets.
CALF_DEFAULT_LOG_DIR_NAME ./calf_logs Default log root when CALF_LOG_DIR is unset.

Pass flags during configuration with -D<flag>=<value>. Common examples:

# Build all C++ and Python tests.
cmake -S . -B build -DCALF_TESTS=ON

# Build only the C++ tests.
cmake -S . -B build -DCALF_TESTS=ON -DCALF_PYTHON_TESTS=OFF

# Build the Python bindings without tests.
cmake -S . -B build -DCALF_BUILD_PYTHON_BINDINGS=ON

# Override compiled-in logging defaults.
cmake -S . -B build \
  -DCALF_DEFAULT_COMPONENT_NAME=my_component \
  -DCALF_DEFAULT_LOG_DIR_NAME=/var/log/calf

Usage

Python bindings

The Python package includes bindings for the STL file logger and stdout logger, as well as the CALF Inspector.

Installation

Build and install the package from the repository root:

python -m pip install .

Install a published release from PyPI with:

python -m pip install capio-calf

For development, install it in editable mode:

python -m pip install -e .

The build uses CMake and pybind11 automatically. To build the extension directly with CMake instead:

cmake -S . -B build -DCALF_BUILD_PYTHON_BINDINGS=ON
cmake --build build

STL logger

calf.Logger is an alias for the STL-backed calf.StlLogger. Use it as a context manager so the logging scope is closed deterministically:

import calf

with calf.Logger("processing request") as logger:
    logger.log("reading input")
    logger.log("request complete")
    print(logger.log_file_name)

CALF automatically uses the current Python function name as the invoker. At module scope it uses the script filename, while interactive sessions use python. Pass invoker= to override the detected name. The other optional constructor arguments are file, line, and tid. If tid is omitted, CALF uses the current thread ID. close() can be used instead of a context manager, and get_log_file_name() returns the STL log path.

CALF_LOG_DIR and CALF_LOG_PREFIX configure file output in the same way as the C++ STL logger.

Stdout logger

The stdout logger supports scoped logging and direct messages:

import calf

options = calf.StdoutLogger.get_options()
options.workflow_name = "example"
options.color = calf.CLI_LEVEL_INFO
options.print_header = True
options.use_color = True
calf.StdoutLogger.set_options(options)

with calf.StdoutLogger("starting") as logger:
    logger.log("working")

calf.StdoutLogger.print("finished")

Available colors are CLI_LEVEL_RESET, CLI_LEVEL_STATUS, CLI_LEVEL_INFO, CLI_LEVEL_WARNING, and CLI_LEVEL_ERROR.

Inspector

Installing the package also installs the bundled CALF Inspector:

calf calf_logs

It can also be launched with python -m calf. See the CALF Inspector documentation for all options.

Server / non-interceptor code

Include StlLogger.h. Logging is enabled by default on every thread.

#include <calf/StlLogger.h>

void handle_request(int tid, const char *path) {
    START_LOG(tid, "call(path=%s)", path);

    LOG("processing path=%s", path);

    // ... do work ...

    LOG("done");
} // ts_exit written here when log goes out of scope

POSIX syscall interceptor

Include SyscallLogger.h. Logging starts disabled to avoid re-entrancy during library setup. Call ENABLE_LOGGER() once setup is complete.

If the interceptor uses syscall_no_intercept from the syscall_intercept library, redirect Calf's syscalls before enabling:

#include <calf/SyscallLogger.h>
#include <libsyscall_intercept_hook_point.h>

// Called once during interceptor initialisation.
void setup() {
    SET_CALF_SYSCALL_HANDLER(syscall_no_intercept);
    ENABLE_LOGGER();
}

long hook(long syscall_number, ...) {
    START_LOG(capio_syscall(SYS_gettid), "call()");
    // ...
}

Use DISABLE_LOGGER() around internal operations that must not appear in the log (e.g. Calf's own file I/O):

void internal_op() {
    DISABLE_LOGGER();   // RAII: re-enables on scope exit
    // ... internal syscalls not logged ...
}

Macros

Macro Description
START_LOG(tid, fmt, ...) Opens a log scope. Creates a Logger log RAII object on the stack.
LOG(fmt, ...) Appends an event to the current scope's events array.
ERR_EXIT(fmt, ...) Logs then terminates (or throws if continue_on_error is true).
ENABLE_LOGGER() Activates logging on the calling thread (POSIX build only).
DISABLE_LOGGER() Suspends logging for the current scope via RAII.
DBG(tid, lambda) Wraps a lambda in a debug-only log scope. Compiled out in release builds.
SET_CALF_SYSCALL_HANDLER Sets non intercepted syscall function handler. available only in SyscallLogger backend.

Environment variables

Variable Description Default
CALF_LOG_DIR Root directory for all log output. ./calf_logs
CALF_LOG_PREFIX Filename prefix for per-thread log files. Backend-specific

Log files are written to $CALF_LOG_DIR/<backend>/<hostname>/<prefix><tid>.log.

Download files

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

Source Distribution

capio_calf-0.2.0.tar.gz (67.7 kB view details)

Uploaded Source

Built Distributions

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

capio_calf-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

capio_calf-0.2.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

capio_calf-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

capio_calf-0.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (206.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

capio_calf-0.2.0-cp314-cp314-macosx_15_0_x86_64.whl (133.3 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

capio_calf-0.2.0-cp314-cp314-macosx_15_0_arm64.whl (125.1 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

capio_calf-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

capio_calf-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

capio_calf-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

capio_calf-0.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (205.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

capio_calf-0.2.0-cp313-cp313-macosx_15_0_x86_64.whl (132.8 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

capio_calf-0.2.0-cp313-cp313-macosx_15_0_arm64.whl (124.6 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

capio_calf-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

capio_calf-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

capio_calf-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (223.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

capio_calf-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (205.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

capio_calf-0.2.0-cp312-cp312-macosx_15_0_x86_64.whl (132.8 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

capio_calf-0.2.0-cp312-cp312-macosx_15_0_arm64.whl (124.5 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

capio_calf-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

capio_calf-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

capio_calf-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (222.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

capio_calf-0.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (205.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

capio_calf-0.2.0-cp311-cp311-macosx_15_0_x86_64.whl (131.8 kB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

capio_calf-0.2.0-cp311-cp311-macosx_15_0_arm64.whl (124.2 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

capio_calf-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

capio_calf-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

capio_calf-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (221.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

capio_calf-0.2.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (204.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

capio_calf-0.2.0-cp310-cp310-macosx_15_0_x86_64.whl (130.3 kB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

capio_calf-0.2.0-cp310-cp310-macosx_15_0_arm64.whl (123.1 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file capio_calf-0.2.0.tar.gz.

File metadata

  • Download URL: capio_calf-0.2.0.tar.gz
  • Upload date:
  • Size: 67.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for capio_calf-0.2.0.tar.gz
Algorithm Hash digest
SHA256 345199d5e7ffebc1da07167f08ab26cdfd9d5142949ea5163043e995156811d3
MD5 30ba764db328c962d9e67485d3686a88
BLAKE2b-256 3d97d67cb7fa79235ea888a826d027e5975eedb8d0c52eb3e968fab3c6e9e403

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2bd9641b3134231b42a5a0d99e3f2abd05e85dfb316fb345dc90548f514700c2
MD5 6f5481087028f49ea256cbddd7c30092
BLAKE2b-256 f92edf7f9847d2302e5eebb7cbaed23d22ff5b5dae43279775be71d24b16b577

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 38341411a1347bbebe4c7e6d3fdbfb626728a5ee879325dcf36227d59da01433
MD5 dde9ffc153f1a2056e1ca8d3d54baadb
BLAKE2b-256 9294cba8c5cd03656cb79574591d3176593303d203f58aea97c3b1620d91b302

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7320141ca76d35aab5d325aff13ecf0314f715535b752823f3b36a7fa1d62e5b
MD5 6a8665ad0741f27ff9a7a1bb9e271f5a
BLAKE2b-256 160cf546e92ebbd43cfffdc1f47aa02bd5b3ea9a3485d26145b3cf7974c2163d

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 15a820322937036ded0d2a92c47b06e16322003f5fb481658fed4a2191c701fd
MD5 600fbefeec6cc9697c2d6ebb5f9d211e
BLAKE2b-256 b9f8a48bf6ce20ab6b1e9bbf86e53efdeddaacd1fe378a864e24fc35cb89f501

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 89081d72401d7e7b96856d2fa9a057e85b3c97e632af83ea67995f2cc6f53193
MD5 c00c655a43a85072fc499a04a716b424
BLAKE2b-256 76ce9e4fe9fb574be05a05d13538355d4b6e61e9167ccd3636085dad2839b9f7

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 30e470a55d67b36d53853be5113701ab295d7fc3d8b5251220ad42ee65e79693
MD5 f611353b33bb67f96ad9f3816fcaaf03
BLAKE2b-256 00e80f87cf542d8bbf9d1ca1698c2511d40ed8b24bca4c45e8256eca7ebddb8d

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0449a51d5d1275196b0894af9578d2534b07274104d721be38cb1adbbc4783e4
MD5 8d727a35c0bc5657c119ee5a4db1cd19
BLAKE2b-256 9e5139c5a8601cb291b159652cfe9a8250f2ee4bc9e5520a4c701528b436b549

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1565bc7af06037505750a5663e7411ad8f88f80fbe48b3b76cc7f978f139ae50
MD5 bed1c60799a6187cc8cf243aebbdabd3
BLAKE2b-256 64b913759f5c24b904d39e4d4f5d8a8cee241fce896e07b330de4ab8e183664a

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d4f40c1a7d26ef551b8a05c507ff28d5ba0cde18e99056650857da612540eade
MD5 a7597cd48205277e34aa1fb4a29da243
BLAKE2b-256 f869deb24a80c64333276b60d59c76eb1098a5c65da64b88e6ab4cecd5b295d9

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37cb0a8969145c3165b0b7050755ce91ce2d96697ca1069eef7a71d4c307cc2a
MD5 ba005f4195dc2ea89109c0617574a737
BLAKE2b-256 e392890f87cb3754c413ed57f88ce82ae740a7f7840b0390283ff6762c3ed519

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 9e878d22b0b012fc25cc192744b348949eb85912e8056e0d1b98ca10be8addd8
MD5 e34b1ac11d4afc852ee4b6eb4d64b478
BLAKE2b-256 0e2fa11e7dfc7dd03789575c6bb8feccc711f4047f8ace9583659286814d19a9

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 183cad6e6fd04a614b08613c5da100eb6a773d06f9d10e332b0b9d6041066fd9
MD5 b6bbf6a29ebbfa92e9e65471b7b9d0fb
BLAKE2b-256 9a9c7622e5ede15579580b2f28c8940ebaf77ff2e3933cf7be5fece84617b65d

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 903f5eb9d259f72bbbe2f639ff9bd0bfc5e4c57d0350c66e2208d74aeaa05471
MD5 51ec9353c4a8e5541359e6589b29e789
BLAKE2b-256 762b4f807854e154cdfc0410c094aa2eddf686dc2432045662cd57696dd9a740

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 621d505582b23eb7d5d7cb70554f388cb0737ce78b423360cf50ae248d5d8ac9
MD5 2adf7e2e1e5fcf600950b9c8fd75650e
BLAKE2b-256 e75d6120fd1a94a1c99987c3069d0b17d6ed430183e983faf1469a8a10015d91

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d62daa444b2b6b2888cc7116a644152b03774e32b2894687bd5c15c0d6f41134
MD5 a241ec218c151dac074b70407adb7710
BLAKE2b-256 123ef6601bf39cbefa458b7cfeee2cc3d76e86a898726d38e1d6c27ee25b6f04

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9765df335ac00743453f2c86f836c594f1a6483ae027543fe82a47b0c5283807
MD5 141b598bc2393e964f56f771459928f9
BLAKE2b-256 0014e9722a9d63ed3ade3358f17b8fb50d7fad30162a53ac3204150c71c6feb7

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d714fde4348df9cd39c27c9934496f253c722859b4370348950cec4814d191ce
MD5 c614f67105dd7fc2d82ccbd2d265eeec
BLAKE2b-256 d6efadcda2b1a7144542369f8ffc4fedf7df69e29ae744ad7aa1597bbbd9b9c1

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e7343f1b818249fbce0fb03c6e547e3e7be02cdbb193d051897bd62f967fe30e
MD5 76a5495c6e517fb8caa217d1d0cc1db2
BLAKE2b-256 cdbc2657aeb27533c5ae5fc5b5dac6b4bf89f43c9e9b8dea43f56221bb44bf1c

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d68e7cd20913b760585d58e4d0fe747576ad3c5ffa04cc7fb09e4e861e82c8c
MD5 626ea162362309062604241d937ae3b7
BLAKE2b-256 9696a41ead522bad0e401df5ccba8ce96406a1a447648ef560697ac0bbfa4e12

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b58ba027d64ec36ba8451699b33b6d7bdff8ecfb3da727ba138389bc5808a82
MD5 b4009abe8a60c5d4dd0dc0081382591d
BLAKE2b-256 c9844d2ee9540b34c943966c48bac095a0fcac2ae9976ec4ad22601525f37255

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 539bb7e9a582b2b4067b26c48f9c61d2cfcc7d61914839e14b04425bf737d9d3
MD5 5838486105dfb6e7c8e3e57892dc9501
BLAKE2b-256 5f80bc2a4bff3c232c8786fbc114b6e7f4acdb5eefdd72df3dd6f279e4ec3ae9

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2430b519cf93ee80cbc3ffbaf5a4251267c74a64b2e6b905edb1b721b995a04c
MD5 f517165d962dfef845618f9292fafe4a
BLAKE2b-256 c3a49f9000b312ed96eb71e8426ffa3bbf0d09544db76b7ef4f08db87a19fe22

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c700e1fe9f593cf3131c282dbb67e349a7dba52469ae4096017c9a7990fab02c
MD5 736e23439d354983115405ac5e463cd2
BLAKE2b-256 5122e234dda7cd4a8920e1c826f462d77213313dc510f9feb6091182f23846c9

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 29265ea7263eb0a6ce448afa62adab40f1f568adf83dd7d26b93989f195ecc7d
MD5 3a442cab61ce968be4fdf3e8b887009f
BLAKE2b-256 0828f20ebb793b9336352c15f03d24c809c8d4c9047837dac655925eaa0c6784

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e368e90ff7fbdcec63ec0aa15037e2a1e4211d60a5a732c3edfdae85794ce798
MD5 e7a29898338ad7ae078f657634a9db89
BLAKE2b-256 b684150b3faf1c67eea040ee49f683930f08545967018984920b9e1aa1ce2b98

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b2f3fa0cbb1f6fd2a6f55301cd71dd704160265427e522044aa7999850ae40e
MD5 aa4c92c2a2d46bed6056c62a28de4322
BLAKE2b-256 29fc9545eaa97131444ccbcea3637f7b4af13a2364a02379d6a99891c2d1e8d9

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93c60d3bebb752f1887c400cf10eacb4bbb803ed0e39813f40967b833dbf8308
MD5 a78ff685e7039603b689cecf22cd6429
BLAKE2b-256 9733ead2550098d46222ee90736ff16edfc2e18acd191f7a823dde34f83e4454

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 07866d2e52e9bd6f55b5193e020f4427045984b87c317a21c66cff72e8cbb691
MD5 6b432cda75864ddb37780b665be001a9
BLAKE2b-256 e23cf245c80c1f319982c1f3b0a6b347cc45687f73c57f1d295a2ef3ced8b755

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1e9f6afe1a4a3ecd30d26129fca00d8822d26d5db72bafd0119f6aa9dd35caf3
MD5 173fcc77b113690139128b75ec095011
BLAKE2b-256 bd9a396efd95a70e79c75c824dbf9e429b1eb01250430832a61bf31a151d57e4

See more details on using hashes here.

File details

Details for the file capio_calf-0.2.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for capio_calf-0.2.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0e2d57a49fada84ab19dc2158c9a3b44c84410cf6f99067af5b62511a742a523
MD5 72b1066a2c4e578e451f86b836b8f27b
BLAKE2b-256 aea2af35b20b0df71234a22f1e0945da90a75a83265ff8ac1cc426d5688c4ab9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1

31 files

0.3.0

31 files

This release

0.2.0 This release

31 files

0.1.1

31 files

0.1.0

31 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page