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.

CMake uses any installed Google Protobuf package that provides protoc and generates the schema with it. Otherwise, it downloads Protobuf through FetchContent.

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 Downloads Protobuf when an installation with protoc is unavailable.
CALF_PROTOBUF_FORCE_FETCH OFF Downloads and uses Protobuf even when it is installed.
CALF_PROTOBUF_REGENERATE OFF Adds the calf_regenerate_protobuf source regeneration target.
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

Metadata

Release files for capio-calf 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for capio-calf 0.3.1
File Size Uploaded Provenance Actions
capio_calf-0.3.1.tar.gz 33.0 kB Without provenance Details for capio_calf-0.3.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for capio-calf 0.3.1
File Actions
capio_calf-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for capio_calf-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
capio_calf-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for capio_calf-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl
capio_calf-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for capio_calf-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
capio_calf-0.3.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details for capio_calf-0.3.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
capio_calf-0.3.1-cp314-cp314-macosx_15_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 15.0+ x86-64 Details for capio_calf-0.3.1-cp314-cp314-macosx_15_0_x86_64.whl
capio_calf-0.3.1-cp314-cp314-macosx_15_0_arm64.whl CPython 3.14 CPython 3.14 macOS 15.0+ ARM64 Details for capio_calf-0.3.1-cp314-cp314-macosx_15_0_arm64.whl
capio_calf-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for capio_calf-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
capio_calf-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for capio_calf-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
capio_calf-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for capio_calf-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
capio_calf-0.3.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for capio_calf-0.3.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
capio_calf-0.3.1-cp313-cp313-macosx_15_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 15.0+ x86-64 Details for capio_calf-0.3.1-cp313-cp313-macosx_15_0_x86_64.whl
capio_calf-0.3.1-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details for capio_calf-0.3.1-cp313-cp313-macosx_15_0_arm64.whl
capio_calf-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for capio_calf-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
capio_calf-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for capio_calf-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
capio_calf-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for capio_calf-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
capio_calf-0.3.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for capio_calf-0.3.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
capio_calf-0.3.1-cp312-cp312-macosx_15_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 15.0+ x86-64 Details for capio_calf-0.3.1-cp312-cp312-macosx_15_0_x86_64.whl
capio_calf-0.3.1-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details for capio_calf-0.3.1-cp312-cp312-macosx_15_0_arm64.whl
capio_calf-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for capio_calf-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
capio_calf-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for capio_calf-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
capio_calf-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for capio_calf-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
capio_calf-0.3.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for capio_calf-0.3.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
capio_calf-0.3.1-cp311-cp311-macosx_15_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 15.0+ x86-64 Details for capio_calf-0.3.1-cp311-cp311-macosx_15_0_x86_64.whl
capio_calf-0.3.1-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details for capio_calf-0.3.1-cp311-cp311-macosx_15_0_arm64.whl
capio_calf-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for capio_calf-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
capio_calf-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details for capio_calf-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl
capio_calf-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details for capio_calf-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
capio_calf-0.3.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details for capio_calf-0.3.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
capio_calf-0.3.1-cp310-cp310-macosx_15_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 15.0+ x86-64 Details for capio_calf-0.3.1-cp310-cp310-macosx_15_0_x86_64.whl
capio_calf-0.3.1-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details for capio_calf-0.3.1-cp310-cp310-macosx_15_0_arm64.whl

Total release size: 14.1 MB

Release files / capio_calf-0.3.1.tar.gz

Download URL capio_calf-0.3.1.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
600daf34e68d93a4f6247e0c42f649869f535750af3dca653fa92c95b4b8bfb3
BLAKE2b-256 checksum
How to use checksums
4a0d72ea76dfa535d2ddadbb271b3d6bd8d2cc8664c006f9e08083f85d461646
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL capio_calf-0.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
719c94923657658c6a7ed0be0e76b4dafd7b90e47d1b7254f61a80667ba7c9d3
BLAKE2b-256 checksum
How to use checksums
ca9ccf9c68246cce247c3042defb8b02ec06c19c3b78120047d6cb3706db1196
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL capio_calf-0.3.1-cp314-cp314-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
cb6b29ef612eaa7080a8c3d552bbd5533a70a86cc6808d0c3e227b6051730365
BLAKE2b-256 checksum
How to use checksums
78468bace46218a93ed8426142482ca6fbd999f034b4000e578dba44c23e9ee3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL capio_calf-0.3.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 194.1 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e7aeaac84098f8d635cf89a0b375d4500345c4a2e650369c6c83082533468f20
BLAKE2b-256 checksum
How to use checksums
62ee79a78f5e336b9969950fc016a7b378f10fad384cb96b6d49101d4b21d8eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL capio_calf-0.3.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 177.0 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
df7ad863602bce628ed3bcfe1d82684aa718969af5ae0ca0bd9c3ba40eeff06b
BLAKE2b-256 checksum
How to use checksums
8d1497eb2289d7835d714bac14c4b85c50e8b7ae1ba0cca9e3c5c905937d6b5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-macosx_15_0_x86_64.whl

Download URL capio_calf-0.3.1-cp314-cp314-macosx_15_0_x86_64.whl
Size 103.6 kB
Tags CPython 3.14 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
1430ba809fa74f544c89cdcf804c5597c526e880c7b5a839b86e8ca6eea46df5
BLAKE2b-256 checksum
How to use checksums
6248cd415e83b7acd5ce535773538c7bb8edc4d2c682442aa9c59c1ba74d4b08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp314-cp314-macosx_15_0_arm64.whl

Download URL capio_calf-0.3.1-cp314-cp314-macosx_15_0_arm64.whl
Size 95.5 kB
Tags CPython 3.14 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
680bbdd53298b37308eab578ef7058b3abdf0eca273054a89ca023700e13db1e
BLAKE2b-256 checksum
How to use checksums
6acc1dcdbff77a0f3a0fbaea0c1427fe7eced89215941ffc792f369537ee1616
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL capio_calf-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
fc0620fbfeaf8d54ff61335d7c219ae981fe2214336f17ad24f1b9287ce457a2
BLAKE2b-256 checksum
How to use checksums
d17a94499297ff1efdc186f19b3c5d6125c86982eb308b48cbc738a260ea0136
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL capio_calf-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f8e48fda8209423726fa024d95a77f3cbc72cd9e2da7ab9010abad05ca8ad02c
BLAKE2b-256 checksum
How to use checksums
6af607f6ac01106931f4a94d3bd3d4834cb4f4589f7acd73a584f283861780e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL capio_calf-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 193.9 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f427004923a8ab2181d26d3eca72599ce82011c77ce699dbff98415b3cf969bc
BLAKE2b-256 checksum
How to use checksums
a1def79a34a56e3d779e61634bef7b5c6267977a5bf271af92f6cb1da1e8e2ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL capio_calf-0.3.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 176.5 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2d935ce5295025f422a2faa87ff9dc157eb31bf3ea785fb684477ce69d89670d
BLAKE2b-256 checksum
How to use checksums
c587121140c6e5d5c124ccfaf67d8ae9b9f71af004b4fcf131a4a687b4f33f28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-macosx_15_0_x86_64.whl

Download URL capio_calf-0.3.1-cp313-cp313-macosx_15_0_x86_64.whl
Size 103.2 kB
Tags CPython 3.13 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
fb37d572c9ba9c41607f7d1518af9a9c9f8a03e10fcae1e75f1526a9f7c6491a
BLAKE2b-256 checksum
How to use checksums
15f667b5cf47e93ab448e4e62b2e14eb1899fb16ae7962d4447b3440b4efe6c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp313-cp313-macosx_15_0_arm64.whl

Download URL capio_calf-0.3.1-cp313-cp313-macosx_15_0_arm64.whl
Size 95.1 kB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
cbf5ef5ab4e0306f184feb592f3521f5480d6e9266aad085d56950bfbabfe486
BLAKE2b-256 checksum
How to use checksums
e5331be0dac0a57aba650eddd533fab238a5d66447d8353befe7ab54a9ce4cf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL capio_calf-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
67eef46184ff6fe1b63346e5ae8ce46e05f75ce74c61ead26d0eb75cd66bf671
BLAKE2b-256 checksum
How to use checksums
475a589e0b9102a700fd7699d3a948c473501aafd5819066c077c9a8715e7479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL capio_calf-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f015058146d9412c11df1f68db33896ce622309783e3ec28b88f7e0d81f586ca
BLAKE2b-256 checksum
How to use checksums
f95eac6597913798e1ba637c087ea98ee3f8bcca8444db08340ae725d7666af7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL capio_calf-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 194.7 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3bef34124ae9aadc11429b6893542efe4a3dbd6915741a98b667fee21e27d9a7
BLAKE2b-256 checksum
How to use checksums
8fda590ac26536e78b353259a8cec3c7edef3848666886dd6e4d36170033b547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL capio_calf-0.3.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 176.6 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
60fd07d4925179350b1a800b8246e9ccac5d624a5736e1bee86f1331aa8dd6b9
BLAKE2b-256 checksum
How to use checksums
fce224d192eab65260927e27c5544840aacf5a018364a0c122f7edb82ea7d8e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-macosx_15_0_x86_64.whl

Download URL capio_calf-0.3.1-cp312-cp312-macosx_15_0_x86_64.whl
Size 103.2 kB
Tags CPython 3.12 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
ec7560a39a28e90d8fc65b26ab03095d6b00c29d95d88ac6fc672aaac8ff9373
BLAKE2b-256 checksum
How to use checksums
13dbc01593d7de9a20aee711bc9cb0a7119f3d3279e5f909f8e18af21d01be5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp312-cp312-macosx_15_0_arm64.whl

Download URL capio_calf-0.3.1-cp312-cp312-macosx_15_0_arm64.whl
Size 95.1 kB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
02c04d8b2fd3652d6ca21b093c341be4ecac97ed619c877d2158fe3ac9f2bfeb
BLAKE2b-256 checksum
How to use checksums
7eaf176dc6937d78553b12c9de778111af66ef0bb1dc56b14b0385fa3f02dc72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL capio_calf-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d41a0f2771533d9a59308e50357b6e358c0e3d1664eec45ed8ae6367e413f8a9
BLAKE2b-256 checksum
How to use checksums
497f3c4f51bf3cfe256e1cf827bea5eb6da0685f1c38f8c43d91ec525c626041
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL capio_calf-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
a4e6c817804f7f0313ff79cdcf3c16a78b6121782d7e184d73f159c21157b873
BLAKE2b-256 checksum
How to use checksums
1dcf7ecaf5813f51f80cc84e6b0f92ecc0af734b28a67f6a79782d4fa528ef7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL capio_calf-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 193.3 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c3fd3095876c05c49918170fb9cff30cdb56c39ed56ee9a1f797b041dac24d08
BLAKE2b-256 checksum
How to use checksums
6cf1c64791a1ce59f9b649d6056f7267c4ec94e15af57c091a9489a4e03255b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL capio_calf-0.3.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 176.3 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
24287ce10b2159bc41b97f9c2d7cfb0f30867556670959f7a72c3d8db889b100
BLAKE2b-256 checksum
How to use checksums
ca3e22cd05676e8f17ab3ecf08ade144171b39dd7b9d8261210f98b9d49ea40a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-macosx_15_0_x86_64.whl

Download URL capio_calf-0.3.1-cp311-cp311-macosx_15_0_x86_64.whl
Size 102.3 kB
Tags CPython 3.11 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
21f9500726d567a9bbba44ef0d52d98b6474eba9a1c977e7f1dc9c6e275290c5
BLAKE2b-256 checksum
How to use checksums
f9e81d8230440f68f56c08110da985ea19ccbbb2d99d7bb1fd9b48cc869d4b8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp311-cp311-macosx_15_0_arm64.whl

Download URL capio_calf-0.3.1-cp311-cp311-macosx_15_0_arm64.whl
Size 94.9 kB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
cc558265d8591f2911864c7a5543f54f405f213bdab307eb5d88421d0fd6c69c
BLAKE2b-256 checksum
How to use checksums
a3f79212ad5b6bb2586378378ed3219058adbdfa8ed8f949e92c8cea663250de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL capio_calf-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
351ade7c464fa228f25eb44be294d93a80f587a6e6f85defaba132839511872c
BLAKE2b-256 checksum
How to use checksums
7b86d963414f197b4543d9ec4c46646093030f13239d180b5ab965981cb0edd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL capio_calf-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5ff2541b739ad5365af866d822d088484a25fe157da444e264bd57d0387e981f
BLAKE2b-256 checksum
How to use checksums
a6463645efc96c4eb22d31d7138edb7ba4c9c47878a52147bc1b54f0f92db0fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL capio_calf-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 192.0 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e96b960d2a48f0e920133b16b8508864dbeca666afb55e9d6d63ce110d4755b
BLAKE2b-256 checksum
How to use checksums
978e412acf2434ec2ccdfba7dba23ad95dff0f02039ed2af0eb76883663f9e2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL capio_calf-0.3.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 175.2 kB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2eda3c44df236cd664e51c50bbcb2c6ac5a96c49833dfd117bac7a4f648bd736
BLAKE2b-256 checksum
How to use checksums
d9c252f18d3c0572d93d03d295b80792f5075060afa87af6129b017ac3888d30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-macosx_15_0_x86_64.whl

Download URL capio_calf-0.3.1-cp310-cp310-macosx_15_0_x86_64.whl
Size 100.9 kB
Tags CPython 3.10 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
672e379c784a15ddd94467d6fb7fe77a696321b1dae376dded8992025c074cd8
BLAKE2b-256 checksum
How to use checksums
f0c79ea8b82ec9b3769922160a456a178d07cd8481bbddf01151a98b1b83cbea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / capio_calf-0.3.1-cp310-cp310-macosx_15_0_arm64.whl

Download URL capio_calf-0.3.1-cp310-cp310-macosx_15_0_arm64.whl
Size 93.6 kB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
ff7e500ad29d1aaff823d56f79b9f27edc48461cdbaa34333c8ace09237cac02
BLAKE2b-256 checksum
How to use checksums
6b1dc465e3041956b219f7dd8bda0ffa727d8b781a6e8c98de465d9e46d49671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for capio-calf 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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