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 records RAII scopes and events in one of two file formats:

  • Perfetto is the preferred format. It produces compact, streaming .perfetto-trace files that open directly in the Perfetto UI.
  • JSON is the dependency-free fallback. It produces readable .log files containing valid, indented JSON.

CALF provides three logging backends:

  • StlLogger uses std::fstream and is intended for regular C++ processes.
  • SyscallLogger uses raw Linux syscalls and is intended for syscall interceptors or other environments where the STL is unsafe.
  • StdOutLogger writes human-readable messages to standard output.

StlLogger and SyscallLogger support both Perfetto and JSON with the same logging macros. The selected file format is fixed when a target is built.

Requirements

  • C++17 or later
  • CMake 3.16 or later
  • Linux when using SyscallLogger
  • Python 3.10 or later when using the Python bindings

Quick start

Add CALF with FetchContent:

include(FetchContent)

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

set(CALF_TESTS OFF CACHE BOOL "" FORCE)
set(CALF_BUILD_PYTHON_BINDINGS OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(calf)

# Enables logging and selects Perfetto when CALF_PROTOBUF=ON.
calf_enable_log(my_server ON)

Use the logging macros in C++:

#include <calf/StlLogger.h>

void handle_request(int tid, const char *path) {
    START_LOG(tid, "path=%s", path);
    LOG("processing");
} // The scope closes and its end timestamp is recorded here.

By default, this writes a Perfetto trace to:

./calf_logs/<hostname>/calf_<pid>.perfetto-trace

Open the file in https://ui.perfetto.dev/.

Log formats

Perfetto format

Perfetto is selected when a target links to calf::protobuf. The calf_enable_log helper does this automatically when CALF_PROTOBUF=ON:

# Automatic: Perfetto if available, otherwise JSON.
calf_enable_log(my_server ON)

# Explicit: require Perfetto. Configuration fails if CALF_PROTOBUF=OFF.
calf_enable_log(my_server ON PROTOBUF)

You can also select it by linking the target directly:

target_link_libraries(my_server PRIVATE calf::protobuf)

CALF writes a standard Perfetto TrackEvent protobuf stream. Its logging model maps to Perfetto as follows:

CALF operation Perfetto representation
START_LOG(...) Slice begin on the calling thread's track
Scope destruction Slice end on the same track
LOG(...) Instant event on the same track
C++ function name Event name
Formatted message args debug annotation
Source file and line Perfetto source location
Nested CALF scopes Nested Perfetto slices

All threads in a process write to one trace:

$CALF_LOG_DIR/<hostname>/<component>_<pid>.perfetto-trace

Each thread has its own Perfetto track. Timestamps use the monotonic clock in nanoseconds. Writes are synchronized so packets from different threads cannot interleave. Separate processes always use separate files.

The trace is streamed as logging occurs; CALF does not build the complete trace in memory. StlLogger uses generated protobuf support for the schema, while SyscallLogger writes compatible protobuf bytes through raw syscalls.

JSON fallback

JSON is selected automatically by calf_enable_log(target ON) when CALF_PROTOBUF=OFF. It can also be requested explicitly:

# Disable protobuf support for the whole CALF build.
set(CALF_PROTOBUF OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(calf)
calf_enable_log(my_server ON)

# Or keep protobuf available but use JSON for this target.
calf_enable_log(my_tool ON JSON)

Directly linking calf::stl or calf::syscall also uses JSON unless the target additionally receives the Perfetto configuration through calf::protobuf:

target_link_libraries(my_server PRIVATE calf::stl)
target_link_libraries(my_interceptor PRIVATE calf::syscall)

This is a build-time fallback. CALF does not switch formats at runtime or convert an existing Perfetto trace to JSON.

JSON output uses one file per thread:

$CALF_LOG_DIR/<component>/<hostname>/<prefix><tid>.log

The default prefix is stl_ for StlLogger and syscall_ for SyscallLogger. CALF_LOG_PREFIX overrides it.

Each file contains one root array. Every START_LOG scope is an object, and each LOG call is an event in that scope's events array:

[
  {
    "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
  }
]

Scope fields:

Field Meaning
invoker Function that opened the scope
file, line Source location of START_LOG
ts_enter Scope start time in elapsed milliseconds
args Expanded START_LOG format string
events Ordered LOG events and any nested scopes
ts_exit Scope end time in elapsed milliseconds

Event fields:

Field Meaning
ts Event time in elapsed milliseconds
invoker Function associated with the enclosing logger
file, line Source location associated with the logger
args Expanded LOG format string

Strings are JSON-escaped, and the file remains valid JSON after each completed outer scope. Multiple outer scopes are appended to the same root array.

C++ usage

Regular processes

Use StlLogger in code where the C++ standard library is safe. Logging starts enabled 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);
    LOG("done");
}

Syscall interceptors

Use SyscallLogger where logging must avoid intercepted STL I/O. This backend is Linux-only and starts disabled to prevent re-entrancy during setup. Enable it after initialization:

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

void setup() {
    SET_CALF_SYSCALL_HANDLER(syscall_no_intercept);
    ENABLE_LOGGER();
}

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

SET_CALF_SYSCALL_HANDLER redirects CALF's internal syscalls through syscall_no_intercept. Temporarily suspend logging around operations that must not be captured:

void internal_operation() {
    DISABLE_LOGGER(); // Logging is restored when this scope exits.
    // Perform internal syscalls.
}

Macros

Macro Description
START_LOG(tid, fmt, ...) Creates a scoped Logger log RAII object.
LOG(fmt, ...) Adds an event to the current scope.
ERR_EXIT(fmt, ...) Logs and terminates, or throws when configured to continue on error.
ENABLE_LOGGER() Enables logging on the calling thread.
DISABLE_LOGGER() Suspends logging until the current C++ scope exits.
DBG(tid, lambda) Wraps a lambda in a debug-only scope; compiled out in release builds.
SET_CALF_SYSCALL_HANDLER(handler) Sets the non-intercepted syscall handler for SyscallLogger.

Configuration

CMake options

Option Default Description
CALF_LOG ON Enables logging macros globally; when disabled, they are no-ops.
CALF_PROTOBUF ON Builds Perfetto support and the calf::protobuf target.
CALF_PROTOBUF_FETCH ON Fetches the required protobuf version when it is not installed.
CALF_TESTS OFF Builds and registers the C++ test suites.
CALF_PYTHON_TESTS Value of CALF_TESTS Builds the Python extension and registers binding tests.
CALF_BUILD_PYTHON_BINDINGS OFF Builds and installs the private calf._py_calf extension.
CALF_DEFAULT_COMPONENT_NAME calf Sets the default component used in paths and CLI headers.
CALF_DEFAULT_LOG_DIR_NAME ./calf_logs Sets the log root used when CALF_LOG_DIR is unset.

Pass options during configuration with -D<option>=<value>:

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

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

# Build without protobuf and use JSON as the automatic format.
cmake -S . -B build -DCALF_PROTOBUF=OFF

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

For individual targets, calf_set_component(target name) and calf_set_default_log_dir(target path) override the compiled-in defaults.

Environment variables

Variable Description Default
CALF_LOG_DIR Root directory for Perfetto and JSON output. ./calf_logs
CALF_LOG_PREFIX Prefix for per-thread JSON filenames; ignored by Perfetto. stl_ or syscall_

Environment variables are read by the process at runtime and override the compiled-in output directory and JSON prefix.

Python bindings

The Python package exposes the JSON-backed StlLogger and the human-readable StdoutLogger.

Install a published release:

python -m pip install capio-calf

Install from the repository for development:

python -m pip install -e .

Use calf.Logger, an alias for calf.StlLogger, as a context manager so its scope closes deterministically:

import calf

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

CALF detects the current Python function as the invoker. At module scope it uses the script name, and in an interactive session it uses python. The constructor accepts invoker, file, line, and tid overrides. If tid is omitted, CALF uses the current thread ID. close() can be used without a context manager, and get_log_file_name() returns the output path.

Configure stdout logging through StdoutLoggerOptions:

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.

Testing

The C++ tests use GoogleTest. Python binding tests use pytest. Both run on Linux and macOS, except the Linux-only raw syscall suites.

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

Run only the Python binding test target with:

cmake --build build --target calf_python_tests

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.3.0.tar.gz (55.0 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.3.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.3.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

capio_calf-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (194.0 kB view details)

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

capio_calf-0.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (176.9 kB view details)

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

capio_calf-0.3.0-cp314-cp314-macosx_15_0_x86_64.whl (103.5 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

capio_calf-0.3.0-cp314-cp314-macosx_15_0_arm64.whl (95.4 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

capio_calf-0.3.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.3.0-cp313-cp313-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

capio_calf-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (193.8 kB view details)

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

capio_calf-0.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (176.4 kB view details)

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

capio_calf-0.3.0-cp313-cp313-macosx_15_0_x86_64.whl (103.1 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

capio_calf-0.3.0-cp313-cp313-macosx_15_0_arm64.whl (95.0 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

capio_calf-0.3.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.3.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

capio_calf-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (194.6 kB view details)

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

capio_calf-0.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (176.5 kB view details)

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

capio_calf-0.3.0-cp312-cp312-macosx_15_0_x86_64.whl (103.1 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

capio_calf-0.3.0-cp312-cp312-macosx_15_0_arm64.whl (95.0 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

capio_calf-0.3.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.3.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

capio_calf-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (193.2 kB view details)

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

capio_calf-0.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (176.2 kB view details)

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

capio_calf-0.3.0-cp311-cp311-macosx_15_0_x86_64.whl (102.2 kB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

capio_calf-0.3.0-cp311-cp311-macosx_15_0_arm64.whl (94.8 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

capio_calf-0.3.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.3.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

capio_calf-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (191.9 kB view details)

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

capio_calf-0.3.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (175.1 kB view details)

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

capio_calf-0.3.0-cp310-cp310-macosx_15_0_x86_64.whl (100.8 kB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

capio_calf-0.3.0-cp310-cp310-macosx_15_0_arm64.whl (93.5 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: capio_calf-0.3.0.tar.gz
  • Upload date:
  • Size: 55.0 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.3.0.tar.gz
Algorithm Hash digest
SHA256 0f9477ca754a548f1002abe1e3bd7542e888d7910fef467424f87b6995990eb0
MD5 4f51f47373dd8192975a318bc7eb07ac
BLAKE2b-256 a9e9281615fda060c41e122c84402faeac5fd72bddac9f90b72c30b41dbb268d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ee4bf0be1f24d2865f0e912f6b7b0724b54140260544a4566c9efa9827dfdd8f
MD5 100adedc15ac4571063dd9b59d5c0c5c
BLAKE2b-256 24cbda4c437ff618e1a853e7b88d163ad0c8a2c1b5308884620d269e01c7fc10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c117d1770dbd8bf003a966cc315f0cb3c872bfd2eff39b89fe7ec4a657997172
MD5 a476fb36036ac7c2e6d39dde49fe6238
BLAKE2b-256 73ae2c867a356819a219d797dfd9269be2768ec94c10bdb0b7f75452ca85a9ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d53c211b7167c0fe45e02fa3124a633d173c9be8b5cb397ae7894a53e728220
MD5 03edfd370c98dc60d4f886efe62e5fb7
BLAKE2b-256 02db7b29c40bb24df5763f573f397697492dda02d88d8dac1b5ccfef7d49f9f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c6c4b6da62901061a63bf53b6305d0d35f314eeb190477f123113965b1a955c3
MD5 1fdae2b9f64aa277a3ac7d9e00a3689d
BLAKE2b-256 b64fd0fc96187eb202f3479f0fd5dcd3504e824d08ba8c0424afc360fefacaf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 e4c963e78fbf8713163e66aed1c0c0a47462c42c9e93188344b116f69c0b0d46
MD5 8f477feadf47453b475276e847bc9671
BLAKE2b-256 a5c0b091d70c54445f3b4542b61f87520b1d4d10c1161de8e5932b3492e3ebe0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d8140fde59784c3d0c7bcb89c04092b12d401e7b35c064e4e73d9dd52ad3a040
MD5 ce2c0d791d05de3e3b9cfb50e73e5246
BLAKE2b-256 f3787796ddf8fe736bff2301d0c82800a5761aca4c6e81b8f12b3cf90ff5f3d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7c440e30523007d6fad6ce48c404433c7ec570004978ff04a874bfa687246412
MD5 e6e8559f67b4a2921af462bb3592618e
BLAKE2b-256 4bdf867141e18e53ce5b7d16b43bdd7b81c470e57f1015463c548b56797c6822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 461958362d8fc029cb75327a7a3fc95f5e1937e0e74344c1f8261c47ffefada1
MD5 6b74df87462511f6e868271678b6e6e0
BLAKE2b-256 d04600c4f55dc00882b59af24d0c0ec87c0dfd9e5ecdf2cc063ac7873935eb02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a946fdad43112cd9cf635e1e61beb6969ec7c534fd057e9f9acb1b12fe5c608
MD5 795069ddb1d6e4fe32468217942ab193
BLAKE2b-256 5ce3c4c400b26bccc58dec1f7703555d6b0bd4267d196dd80e0213ee07ab7b02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4ed8bd17f63d229f8a0c035e256e214d63208255cd05402cdb23a18b0953d3b0
MD5 46702aaaef60e639b641a803627805c3
BLAKE2b-256 f0b3f6ffecc28a5e7b6e1a84e6fe515f6829b1cc5559885b26c1b1924d71e8e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 901066c683aca69cba47f920ac02752406164e565e38efa18b074140813e41e9
MD5 2f469056c4d1c07ee5b2b86244cdd3bd
BLAKE2b-256 9cb3ac9e02a2db2c97c6be9b96d3768316a5a2f7f9484392ebcde221fcea16d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4c5fee5c8ca7ceb897721a05bdafbc5f52584f2f56712446a3a977e04a738beb
MD5 346148a2b0b9d04ee040bebb753c6a9b
BLAKE2b-256 207a1181c2966b0e4dfeccb0bab99358922fedc22ff7b9bc449e1be7f67bc261

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 414136bb96b5b7d5900558876a10f041ed5f5995f9450e10dde330847240e990
MD5 93eab07086e1f9d784bdd720cff2cc57
BLAKE2b-256 3750a69130c6d0626c856f154b9c5e712b24ec24f6b57007df3520de0fc6c19f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bb17c91605b04978d1307d3ddb54fe97a303b7a5281ecc76f3824b2521e0d734
MD5 124a8fa9cf489e23fceb9d97643e4a1e
BLAKE2b-256 2714baa7e2fff0b7df68ae3ba2a3482752820602bcfb8c22385cd567d821291a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10ab68fa9e7b3d9a7981cdf093efddb26adee3529489b2f571f7f9c0df7043b5
MD5 a3e26cfe596419a61b70efa3cf657e40
BLAKE2b-256 aeb1dad44523ef5a33ca89be82be2c48d63076632d42d215637442c5a1703787

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 09ed66e6b688619cfaa4e815be934e66515424f9ff4ff6edc0ebe993192498a7
MD5 f44b1cf38606020e1a03b41a46fbd9f9
BLAKE2b-256 4fa163ab2df4ff74f9bbce425f6f33ef6a3148e343ffe637bdf066be99d56305

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 39de28e912e332370cd283ae7d255e7fba74da82caa134ae4b6731445861973e
MD5 be6ce8056f751f347f154f53401974da
BLAKE2b-256 3f69d56fd87b16e25e609f944efeb572fa1b2f4b27a73bee9ca05ffa71006a0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c7922e0d8ddcca449be3ccce91bbe015fc3f9e89ab59a9e9289488bb0cb9a6a1
MD5 89cccc16a04bbfc75766014166a9fb55
BLAKE2b-256 0398bbe1752caee393317f3640f81059f20da599ec87ee9bb31139c5eff3b048

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b15ed982a7142f5ed5772b67ed90d13494a95cb8004797c200a0bafdc37c2efa
MD5 9a8dd0ee46f0d17fb6a169612038a7b7
BLAKE2b-256 69195429270340c759454e97352fd11b2a4d480fc54b29bf3ecd106d36807c0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3ca683da05f7101f6d4b47d6efe4fea73ce2bd373df30d098e473aa1a709625e
MD5 6cfc0ce0b3c1f637d0ef3a248996c245
BLAKE2b-256 3a7b37f2241f7b3d5edd23b54c6af1897ebf0217026b5c9e5bd1a320facc91e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8dd3c9dd52c142a47e6616d5ef4607865f4295ca695a1edf9ae4ea82932d2c8
MD5 b6aaf88c63f01a2e1a707cb7a208922b
BLAKE2b-256 34c59c915b9452740cde3d69cf93387e3e69d3e2bd462418362dc787bd3a8800

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c327297359d3c9a437d36561af12c72c89cbf38b0e5a6fdbcaf8b0c8bc327934
MD5 cd7b0e2528ba8e72c0efc74530b2f0cf
BLAKE2b-256 da0e4ab45f767ec0bc6f36e39787e2d06010db370f9df63aa538ac77d8e35d9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 271263b85357c2d7331e1bca951d630a963084b7192b2830246807e4477c90ed
MD5 fbd995626d3d14ff6b7109fc4905577b
BLAKE2b-256 c1c80d9424d92518f86a1dff254120449c8e016cb488ac84daa48fd6f7dc61ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 849414fad8da35b760a0968a2e51426c0c2bf2473a80db2026feddc3aea62943
MD5 f0a7149b6846e1114bb3ba406fdc355d
BLAKE2b-256 b77d16295b6a60475980f9a4545cbc0bf655eb0eebc42b3f8bf399457b43d721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a538a429ace7f1851e26757fd8846ba985cf75a569a0a785c6843646509039a1
MD5 b5cdde58d35c60dbdb9c692096607d2c
BLAKE2b-256 12062242acb1def5908caa0844f0553ba6037e03626c2fb51b653dfa2232f1af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4c2a99a80637fecaeef0eb0b4eff26d526f6224ba4d3d216ea86768cbf5235bd
MD5 598624e3b7d1027b44f7ccb9489da72d
BLAKE2b-256 03c26e2960272a6135fdb2985da50eba96a8d50175581ff83cf0e136dc8c5436

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7f642c8816a6de4bdbcd7213b3ea3d66b836c30375a079227922c5a4435d056
MD5 18ff1d16528c6bc90bf4b32336e9f797
BLAKE2b-256 49fe740f6b95a002fd3fd82179b3aa547dbfaf3d06090a570e3a274fe76badde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b86ffe155bbc0b42586515310af7d35596a21ff2923e30b43fc803c37efb79a8
MD5 ef5a2cc2ef7b4277cc2a845528617432
BLAKE2b-256 5bfee95fc2d74f327700764d0301efe851697cee4f67143ff397d8e0c268a7b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c195866ba350483cd0d27a308149349d4101544d16a2fd0d31d2f621c2000103
MD5 fc2f08531669478c119c18f5155515ec
BLAKE2b-256 5a1fa0695fdb30a8e4961c163b069d0a9e90ab2971d402431fdefa5b17a06f6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for capio_calf-0.3.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d9ac3f1c63a0828166f8f8ba960d47e8086712f3fef55fe5df6becb7fe182acc
MD5 b2f6a44b153cf9525a19f6bce1d9dced
BLAKE2b-256 36458c62fd1eef9dc23db1ec3250fa49d3d8d31a21e730a0d9531f15e1de334e

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1

31 files

This release

0.3.0 This release

31 files

0.2.0

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