Skip to main content

Python interface to the CLP Core Features through CLP's FFI

Project description

clp-ffi-py

This module provides Python packages to interface with CLP Core Features through CLP's FFI (foreign function interface). At present, this library supplies built-in functions for encoding/decoding log messages using CLP.

[!IMPORTANT] This project is no longer built for Python3.6.

Quick Start

Install with pip:

# Install the latest version
python3 -m pip install --upgrade clp-ffi-py

Note:

  • Python 3.7 or higher is required.
  • Tested on Linux, macOS and Windows.

To install an older version or download the prebuilt whl package, check the project homepage on PyPI here.

Compatibility

Tested on Python 3.7, 3.8, 3.11 and 3.12, and it should work on any Python version >= 3.7.

API Reference

The API reference for this library can be found on our docs hub.

Building/Packaging

To manually build a package for distribution, follow the steps below.

Requirements

  • A C++ compiler that supports C++20 and std::span, e.g:
    • clang++ >= 7
    • g++ >= 10
    • MSVC >= 1930 (included in Visual Studio 2022)
  • python3
  • python3-dev
  • python3-venv
  • Task >= 3.35.1

Build commands

  • Build a Python wheel incrementally:

    task
    

    The command above will generate both a .tar.gz and .whl package under ./build/dist/.

  • Clean up the build:

    task clean
    

CLP IR Readers

CLP IR Readers provide a convenient interface for CLP IR decoding and search methods.

ClpIrStreamReader

  • Read/decode any arbitrary CLP IR stream (as an instance of IO[bytes]).
  • Can be used as an iterator that returns each log event as a LogEvent object.
  • Can search target log events by giving a search query:
    • Searching log events within a certain time range.
    • Searching log messages that match certain wildcard queries.

ClpIrFileReader

  • Simple wrapper around CLPIRStreamHandler that calls open with a given local path.

Example Code: Using ClpIrFileReader to iterate and print log events

from pathlib import Path
from clp_ffi_py.ir import ClpIrFileReader

with ClpIrFileReader(Path("example.clp.zst")) as clp_reader:
    for log_event in clp_reader:
        # Print the log message with its timestamp properly formatted.
        print(log_event.get_formatted_message())

Each log event is represented by a LogEvent object, which offers methods to retrieve its underlying details, such as the timestamp and the log message. For more information, use the following code to see all the available methods and the associated docstring.

from clp_ffi_py.ir import LogEvent
help(LogEvent)

Example Code: Using Query to search log events by specifying a certain time range

from typing import List

from clp_ffi_py.ir import ClpIrStreamReader, LogEvent, Query, QueryBuilder

# Create a QueryBuilder object to build the search query.
query_builder: QueryBuilder = QueryBuilder()

# Create a search query that specifies a time range by UNIX epoch timestamp in
# milliseconds. It will search from 2016.Nov.28 21:00 to 2016.Nov.29 3:00.
time_range_query: Query = (
    query_builder
    .set_search_time_lower_bound(1480366800000) # 2016.11.28 21:00
    .set_search_time_upper_bound(1480388400000) # 2016.11.29 03:00
    .build()
)

# A list to store all the log events within the search time range
log_events: List[LogEvent] = []

# Open IRstream compressed log file as a binary file stream, then pass it to
# CLpIrStreamReader.
with open("example.clp.zst", "rb") as compressed_log_file:
    with ClpIrStreamReader(compressed_log_file) as clp_reader:
        for log_event in clp_reader.search(time_range_query):
            log_events.append(log_event)

Example Code: Using Query to search log messages of certain pattern(s) specified by wildcard queries.

from pathlib import Path
from typing import List, Tuple

from clp_ffi_py.ir import ClpIrFileReader, Query, QueryBuilder
from clp_ffi_py.wildcard_query import FullStringWildcardQuery, SubstringWildcardQuery

# Create a QueryBuilder object to build the search query.
query_builder: QueryBuilder = QueryBuilder()

# Add wildcard patterns to filter log messages:
query_builder.add_wildcard_query(SubstringWildcardQuery("uid=*,status=failed"))
query_builder.add_wildcard_query(
    FullStringWildcardQuery("*UID=*,Status=KILLED*", case_sensitive=True)
)

# Initialize a Query object using the builder:
wildcard_search_query: Query = query_builder.build()
# Store the log events that match the criteria in the format:
# [timestamp, message]
matched_log_messages: List[Tuple[int, str]] = []

# A convenience file reader class is also available to interact with a file that
# represents an encoded CLP IR stream directly.
with ClpIrFileReader(Path("example.clp.zst")) as clp_reader:
    for log_event in clp_reader.search(wildcard_search_query):
        matched_log_messages.append((log_event.get_timestamp(), log_event.get_log_message()))

A Query object may have both the search time range and the wildcard queries (WildcardQuery) specified to support more complex search scenarios. QueryBuilder can be used to conveniently construct Query objects. For more details, use the following code to access the related docstring.

from clp_ffi_py.ir import Query, QueryBuilder
from clp_ffi_py import FullStringWildcardQuery, SubstringWildcardQuery, WildcardQuery
help(Query)
help(QueryBuilder)
help(WildcardQuery)
help(FullStringWildcardQuery)
help(SubstringWildcardQuery)

Streaming Decode/Search Directly from S3 Remote Storage

When working with CLP IR files stored on S3-compatible storage systems, smart_open can be used to open and read the IR stream for the following benefits:

  • It only performs stream operation and does not download the file to the disk.
  • It only invokes a single GET request so that the API access cost is minimized.

Here is an example:

from pathlib import Path
from clp_ffi_py.ir import ClpIrStreamReader

import boto3
import os
import smart_open

# Create a boto3 session by reading AWS credentials from environment variables.
session = boto3.Session(
    aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
    aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
)

url = 's3://clp-example-s3-bucket/example.clp.zst'
# Using `smart_open.open` to stream the encoded CLP IR:
with smart_open.open(
    url, mode="rb", compression="disable", transport_params={"client": session.client("s3")}
) as istream:
    with ClpIrStreamReader(istream, allow_incomplete_stream=True) as clp_reader:
        for log_event in clp_reader:
            # Print the log message with its timestamp properly formatted.
            print(log_event.get_formatted_message())

Note:

  • Setting compression="disable" is necessary so that smart_open doesn't undo the IR file's Zstandard compression (based on the file's extension) before streaming it to ClpIrStreamReader; ClpIrStreamReader expects the input stream to be Zstandard-compressed.
  • When allow_incomplete_stream is set to False (default), the reader will raise clp_ffi_py.ir.IncompleteStreamError if the stream is incomplete (it doesn't end with the byte sequence indicating the stream's end). In practice, this can occur if you're reading a stream that is still being written or wasn't properly closed.

Parallel Processing

The Query and LogEvent classes can be serialized by pickle. Therefore, decoding and search can be parallelized across streams/files using libraries such as multiprocessing and tqlm.

Testing

# 1. Create and enter a virtual environment
python -m venv venv && . ./venv/bin/activate

# 2. Install development dependencies
pip install -r requirements-dev.txt

# 3. Pull all submodules in preparation for building
git submodule update --init --recursive

# 4. Install
pip install -e .

# 5. Run unit tests
python -m unittest -bv

Note: If the package is installed from a whl file into the site packages, rather than installed locally (pip install -e .), the tester cannot be launched from the project's root directory. If unittest is ran from the root directory, the local clp_ffi_py directory will shadow the clp_ffi_py module installed. To run the tester with the installed package, try the following:

cd tests
python -m unittest -bv

Build and Test with cibuildwheel

This project utilizes cibuildwheel configuration. Whenever modifications are made and committed to GitHub, the cibuildwheel Action will automatically initiate, building this library for several Python environments across diverse OS and architectures. You can access the build outcomes (wheel files) via the GitHub Action page. For instructions on customizing the build targets or running cibuildwheel locally, please refer to the official documentation of cibuildwheel.

Contributing

Before submitting a pull request, run the following error-checking and formatting tools (found in [pyproject.toml]):

  • mypy: mypy clp_ffi_py
    • mypy checks for typing errors. You should resolve all typing errors or if an error cannot be resolved (e.g., it's due to a third-party library), you should add a comment # type: ignore to silence the error.
  • docformatter: docformatter -i clp_ffi_py tests
    • This formats docstrings. You should review and add any changes to your PR.
  • Black: black clp_ffi_py
    • This formats the Python code according to Black's code-style rules. You should review and add any changes to your PR.
  • clang-format: clang-format -i src/clp_ffi_py/**
    • This formats the C++ code according to the code-style rules specified in .clang-format. You should review and add any changes to your PR.
  • ruff: ruff check --fix clp_ffi_py tests
    • This performs linting according to PEPs. You should review and add any changes to your PR.

Note that docformatter should be run before black to give Black the last.

Additionally, the following tools can be useful during development. However, they cannot be installed using pip. Developers need to install them using other package management tools such as apt-get:

  • clang-tidy: clang-tidy --extra-arg=-std=c++17 PATH_TO_THE_FILE
    • This static analysis tool catches improper coding behaviors based on the rules specified in .clang-tidy, and sends suggestions corresponding to each warning. Developers should manually review all the warnings and try with their best effort to fix the reasonable ones.
  • bear: bear python setup.py build
    • This tool generates a JSON compilation database on the project's root directory named compile_commands.json. This file will be used by clang-tidy to execute the static analysis. It also helps IDEs to configure code completion (such as VSCode).

Project details


Download files

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

Source Distribution

clp_ffi_py-0.0.12.tar.gz (359.1 kB view details)

Uploaded Source

Built Distributions

clp_ffi_py-0.0.12-cp312-cp312-win_amd64.whl (113.0 kB view details)

Uploaded CPython 3.12 Windows x86-64

clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp312-cp312-macosx_11_0_arm64.whl (149.9 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_x86_64.whl (156.2 kB view details)

Uploaded CPython 3.12 macOS 10.15+ x86-64

clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_universal2.whl (290.8 kB view details)

Uploaded CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64)

clp_ffi_py-0.0.12-cp311-cp311-win_amd64.whl (112.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp311-cp311-macosx_11_0_arm64.whl (149.9 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_x86_64.whl (156.2 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_universal2.whl (290.7 kB view details)

Uploaded CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64)

clp_ffi_py-0.0.12-cp310-cp310-win_amd64.whl (112.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp310-cp310-macosx_11_0_arm64.whl (149.9 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_x86_64.whl (156.2 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_universal2.whl (290.7 kB view details)

Uploaded CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64)

clp_ffi_py-0.0.12-cp39-cp39-win_amd64.whl (113.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp39-cp39-macosx_11_0_arm64.whl (149.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_x86_64.whl (156.2 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_universal2.whl (290.8 kB view details)

Uploaded CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64)

clp_ffi_py-0.0.12-cp38-cp38-win_amd64.whl (113.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_i686.whl (3.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp38-cp38-macosx_11_0_arm64.whl (149.9 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_x86_64.whl (156.2 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_universal2.whl (290.8 kB view details)

Uploaded CPython 3.8 macOS 10.15+ universal2 (ARM64, x86-64)

clp_ffi_py-0.0.12-cp37-cp37m-win_amd64.whl (113.2 kB view details)

Uploaded CPython 3.7m Windows x86-64

clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_i686.whl (3.5 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

clp_ffi_py-0.0.12-cp37-cp37m-macosx_10_15_x86_64.whl (156.3 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file clp_ffi_py-0.0.12.tar.gz.

File metadata

  • Download URL: clp_ffi_py-0.0.12.tar.gz
  • Upload date:
  • Size: 359.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for clp_ffi_py-0.0.12.tar.gz
Algorithm Hash digest
SHA256 92acee37b6ef17c239a2ba24d14883820ca033e750d1b554b3da24a199fa7046
MD5 a4210ddca7e1c8218b52a79c2fbbf0fe
BLAKE2b-256 c5af008c0d58c51794a523f2032de76b565ae8eb18c1ccd250d221125a4fb0da

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bb02d03c1a6ac8b44b52bc3c43e3884f7c19889b5791b304805e124d2389369c
MD5 0479e212662124aeae107fbf90647d11
BLAKE2b-256 5d5bac823387b6a6efbd4b065d99927ef46bdf1ffa57aa82bf6849229e450ecb

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d9066c6a5e67d6aa5977e6df30cce7c138e94a813ce15675fa90c75e97fa2db4
MD5 ffd00bea4ca48e8cb3123c7e02ca4c1c
BLAKE2b-256 4ed5480bf0b18743ba816fd59a6786670b8bc60a8a1e8d8a715dbae745261abc

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1bac0afaf39c68f256eadf44a5ad0dca696368be1cbc207060ec89247c90acef
MD5 a620870e986330d6e14536ded980cfa3
BLAKE2b-256 79ce2ca754edece96d47679646299706676c3c9ac972f35c3853ffead27ad74b

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e63bb79829c76faf742f53b42ba9b211add84f34c0ae1cc4a7a299f8eec70393
MD5 11b565b6bf2239f191c4f2176e976b85
BLAKE2b-256 f01b54ceff0e80618987510bf32dc97e935ffa7c67f1ef09c8cc31f242c5cea5

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55ee0a81a0dd0f9b880c5ec4373e7e143fc6df220ff9828219f88db2977e2af5
MD5 87df69f795564ee9a5055f0937f3ce05
BLAKE2b-256 d03a814b64aa539b9c01f4f62aa86332a50f91dbbf58228c03649758c741bc7d

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 436b1fa556554c42ef59511f7c24d1f06825e379545e40ea8de7a704a0b7d89b
MD5 e030fe241dd9064343577c187fe94907
BLAKE2b-256 11437426a1da0e7bee1827039e271a8c5d89f238783850ad09934740b8bdf039

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f609f9fcd76c9d9bbd34f160813adf4b150a8233a454bb59e15579695cad7cb6
MD5 b1663d357c0f1a01edba93efb77040f7
BLAKE2b-256 24bfb40de970bc89178897d6941c59282fa7d6907089ca856d550f34b8804f10

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4eba3830fbb1890b5dfa1c1eb80f9adbe2c907f5373c92a09e929420415bbce3
MD5 76598d6f6e136533d70de030b862763c
BLAKE2b-256 844fba2b9e985ddc0544eac831cc1aed4dbf69ac08e4c95ed74ae01cd377ebfb

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5dd28b5f602f0c133fcc1f28c3ae03e1cd472659116a97ef060c433ad6822152
MD5 372c89672c972704c66d17aecc430ad2
BLAKE2b-256 f821173cf9b9521365219fee5c25fbee2dfd3b073c028db9f218ab6a9d9a9140

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp312-cp312-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 67df8ac7ac28beb1b9d58bde45e7d334815499ad7ad6465efb1af0e5eefa5e60
MD5 9fe07f3782594ddde62a70abb2d2bb3c
BLAKE2b-256 18fff447719f8654212504fbc762aa8f11742e41dd1a36920795a766a0fee8ef

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5ab508b6eafe8acfbc9984d499f459b98414fee6e07474d8a4f0cbf658de56bd
MD5 84bf88cab12ea00507b4b170b8c0e7b3
BLAKE2b-256 80372bfd22f18e76237099f76af9ec7d7d22a6ac6fa5b435d43a95a1e8dbd120

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 260f7810ace14efa5890f062c2f62dd3f2072702c976dab918f237656e7659f5
MD5 6805eee24a1720beead5edf9b99daf06
BLAKE2b-256 817a1f095f43d6b07df2b9059f85d7fd92152bc726be404914cdfeab0b4cd1e8

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 988f3126a7b726a1fbf139bd9b4617e71530ce0cc525147a96952cf35a704f62
MD5 8155df994569996f7060eb8ad1186359
BLAKE2b-256 3f44efaf7862202f4f41ef83e86c02bca9be12ccd3648b1ce2bc6b47d580e404

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a49b178465b27978a6ee79ffe1cc4157351daedaa7473aecebec785bb94f6e56
MD5 e6b74f9c68ef8cdc8e819368104da923
BLAKE2b-256 3c05c7c41928282436cebe4361fd8c5d7bd534adb669113e3c88ce6f685cecd7

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2410e3da6db31753f396c7c926ab677a1406c40723f65ae355eff4c9a4771ac4
MD5 b16cfbb7281e33604653c03fefa3a19b
BLAKE2b-256 20c6ea8b0c01a4a70d7d78905fbc204c364088ca49b4656d00dcf53ccd173c68

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f7f418de258b0a62abceb7a1cae40c2b3f3a6a49bdb47eae1d6f202b359358d0
MD5 b66c1cf4f6034d7171d5faede849c73b
BLAKE2b-256 3445b99fbc8fac1d3b3f37d25fd78a9aafc1af2c4958fd991a29745c0950ae57

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a7b01188c1b4f0de55c19fe21a244acf84e9278fe0b02edbc4456e97b801263
MD5 63781a37e6184ebed6d4ad77a6b0288c
BLAKE2b-256 718a3632540b88d5dc61002a4e925e81517fa6844a67b7596cf92aa98e16d4ad

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 384bebbd83cf2cdce73996ee3d665886722bea904e82e7be162febd9ed53befb
MD5 e43ab841f54106ac77d08f2a5d15bac1
BLAKE2b-256 8c8e47921a85392bc0a70c03985431314a61f055ed3cd44a9f60c315baa89efd

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1569b33d74ba63382e540d90917bfe2f94620af309790b3422c07f05085d309b
MD5 f736b41eeb7bac4d3646c7cc41cb8837
BLAKE2b-256 d33efa899822ef6a53bc38402f0edd3c433bc1920065fcd81f203f1224ac50ed

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp311-cp311-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 d30c625ebbaae492c84099bcea8033d0bd26b2f4006c5dcf4ebfa855c6a15d62
MD5 373319431854ac1d2d12bbb21da5c23e
BLAKE2b-256 1d66cc1eac7a4b78b316f50cc64646850b2db77c0334daaf758026278ab2d1bf

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7ce2ec3682e66648cc60165d2af441041f577542c32cb190a17ba29ee134388d
MD5 b133cc39ff908d26c5b319372b3d3f7a
BLAKE2b-256 d8961d54dd805b7c5593e90ac202cd87449f0b35c3a712da34de8f154fdda413

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 49520a50e01502d87aca62a28d637f972493e835cb4f2ad73e4352d64a990287
MD5 8bfcee6e1e127d53c2443c2b516859e0
BLAKE2b-256 b20d4fcb940c2c7896a619a786f3153793b0150be674139dcc2188c2196ff2c7

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 06815607c4c7a95757b250c31f3d1fb617c0f72b3be2ddd332b837629bbf6e88
MD5 823f6bfb653a2f13c20f5d6fb0c9e45e
BLAKE2b-256 af96a3b820452334e1574710e2a2c6006df12afa1d6516b72491331fec3c354e

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c475ccfe6d16fb7ac265f07fb365e25f925b3741b8d65974fbc2a8ae1e17c9a3
MD5 51cc86df1c9a2f1d41aae55e2c5e1c25
BLAKE2b-256 9d72f707549c61db09f3a42dd017933d43f1d0e40db80a7d9e176d31df626357

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1f9b21123771524fe04f544f09135f3abd3387153011ea327e66810b9443647
MD5 e7ee3b13e3a22eac8e9415236185208b
BLAKE2b-256 057afb5078aa70fc8d484ed8088b9f882f18b5aa54294f49671a2b61d5a4cc8e

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cc8d4470ed81a4cb526d3d786dde53140b7d89d7980dbb3d77ad4046d0666922
MD5 c050a7d3db7215df912f828e26e1fa65
BLAKE2b-256 9632225d4a10b98e0bb9ca50a7b8dffacadddf683fb790336dcb9e8c3b470368

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 94c8cfda25c8351326b46ac0e3dbe5ace9184fd162a4a273ad4346ed27dfa766
MD5 51039860c2c498570aec38dd7668014f
BLAKE2b-256 c759f1e9d517828ecee64944855125ca254b57271c024ed1bfb3b147da613044

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d1ffd0f00018f8165f4efdbd59807e412c2a3087677a650fc7cae58913b7508
MD5 f3df8d2e7a3cecd0599d8cd1c6a2c473
BLAKE2b-256 54d8bc133ac7c811106537ea6a148e75655d3b8c4503146fd9696318934ff5e0

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e48c2c0cbd4a01b91be44792fc3d8322bf6fcc9257c3af663e4856df388902ed
MD5 5b087e393addf1ef890d26f6d3095837
BLAKE2b-256 3ca21d1b7f18fb46a9b5704d18c35b344004f0dff5b2f6cf063b14397187af63

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp310-cp310-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 9f4e6f540fc2835dea3aafb595fa1f0ae4e36489920ec350ca125963f6fca934
MD5 06b5e4b0540b205189437d61d9f8a4db
BLAKE2b-256 5ea2e4e9c64858c7c32be071083a6012c903c20da1a9ae237bdfe5ee3b4c6aaa

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5a4698daf44514c1fe1424de28170f4cb5d8ba0ab19c01a76a02b9683c0cb8ea
MD5 02a9fa10e58646f6e075d5483a768948
BLAKE2b-256 75f794c888f763f1c3d78c5454ff60979ab9d4dddcf501a495066fbc59102546

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 716c5e197c5bb32d04d5ad241f73f4cb9dcc2362ff0f76e9b478b9a840eecfd2
MD5 97f5835c9e99993d7e780eac8a6dd9cf
BLAKE2b-256 fef08be689c5568235526536ed2c3b6774317c8dfd4c72b0b552bdbced578d96

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0220ffc691b576028d15d0e0b7a826ae2cab8ea39edea41590aef8170d684cbe
MD5 3b99c8dd67a35e36abf8ac0241995750
BLAKE2b-256 dec56dd7a1b3717def5b2e821a8ff4d807201619ced3df222fef32344aaf35e1

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bb193adb34b8fdec14536535ce8179d401651f72d914cff653538acf278e5ab8
MD5 59bfb665409c0916c18295e62a9c6660
BLAKE2b-256 2de6b0df308893e62cb1fe4c78d4525ecaf867ae2f317dd87ed08f25617d69b0

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c165c6232e6828268a5034916d9bdc2052b34e02741d9f8024c42bf0875d0deb
MD5 389ce3078f2c6d8569b26a5685b64abd
BLAKE2b-256 75c2326523cb1f433388216bde8f74c12e6e8bafe323b2fd6de2810bb9803941

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e9d29c1de8bcf7606f5785a95aba2eab870cfc321a905712edeff985a4e52f8f
MD5 d9a608a185b352e28c43f6eb4871ffbd
BLAKE2b-256 670b37ef23f3f6321c6e3c8ba9011b989d0d12b8ed2369c41d39bf1c79be66a2

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 97f241b7fa3c3f681c0e4e2151f71d65bacf5e6bc2f398ad60a930bf18c9593d
MD5 a3a69794484e9c80df93d61d6e48943e
BLAKE2b-256 9744ba6ec9fdfb00bc90c775db1066b8f4b48f511bef98a3c046d40739e67a84

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 419037880bace5c0ce62d4084c97a5b1ae6e691428b5ebda857eacb4d8a69934
MD5 d452a7b860bce038915999b92db9fc58
BLAKE2b-256 ffd1ea259e8da59d242001a07978cb1b775644bd4937eac72b2876fb42c23998

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1fa3a70e94755942681dc4b6b7fdbba0bc46086ae9fcf5c9fb9381c60ac64b22
MD5 868c7ead8b8ef158ae73d759545bd645
BLAKE2b-256 bb7be237080848ffea26ba34c6df1dae59af5fc7d8ddf0433704002654d70469

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp39-cp39-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 daf500030ec29108bded290d7ca3ce729e5d05b19d9cc085f7e1d45f0487d5a8
MD5 ab776ce32771e263a69c7ca79702a5a7
BLAKE2b-256 e164f27accedc04b461de4cb54e942dbbe4ddb83fee9a6a907f394d3d73d8f69

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b44e7c110032e0bc7f687899c98a44b2c6fb37e835dac152fa243a6c42e263a2
MD5 c0aec5a3a42da0396bf404e9f8ccae76
BLAKE2b-256 fbba67972793fdf56b0b27ed972503002bc35beb9361ccf9f10929d1cac1cdf4

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 34500d8df3025f8dc210411312c1007a63c594a99237aa12429e484515f3ecd2
MD5 23012291e619cf0612045bbf939cbe5b
BLAKE2b-256 ea5f04fc18155b6bdf4d42c55f1a75290b558627370b08606f8ed2516fb98e4b

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f2dbc7abfa47b240bfc70293998c2d8aeb83378171cb570004c33e1dcc9d607d
MD5 a38c40be38f1c3e3e25acf318ae5e2fa
BLAKE2b-256 705a341c37e0b42821dd10cd29453b6f8bf2dc375c6ca5d73612ed5c4934fd70

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2dfa7b098a8e8cb20a871cb57a2bde8de26fb6aa41fbbb3eecdd008c63e2a6f3
MD5 68d8ba2045157064ec258b54c8e88679
BLAKE2b-256 8f1701086e0c7d0087209853eb73bd0f1f7a107071cf3d1e9347ed750535619a

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0b54115f40bed21fa9b6b9380913dbb89360a9df8ab8513e7d8aa5594054d47
MD5 d6030978abb7d358dd55a37968c870cd
BLAKE2b-256 0e58f3d8f7c032a0dee143a49e57728161a4edf628b2e88c4b39534b6a0f07f5

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 70c6bdcac2bfbddd61cf27edaee8aafaccf5d1b6d36164a5f42edd613a831748
MD5 fe46dc65f1d15f301d5115c5aa04399b
BLAKE2b-256 5353c0755ed53d563036712bf2cdc6020f320e7ba06a36253024101689fc48c6

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5df47d4ba3c1d2fed1c6718333df90dda8700ae0fbdd4d03b1ebffb71cc9123e
MD5 2371210be9866ac3d996f01c736d3375
BLAKE2b-256 eb07763064d48c2fa648c99412d846ba2dc1360206ce2b07604d65d4909ba983

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a00c07c8d7ef0cdc83c2a9adf44b3c52e629775007bbefdc6632bbe5cea59215
MD5 d940f315698c15650a7e904fe2f0b0fe
BLAKE2b-256 8af2e414143d3e59794bd673ba8e12023190cfa0ad6fe8db80eccbb7c01a7062

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f957bc909c1c279c09c561b1b3529430c2712cdc23b6b331af14ba826f2ae23f
MD5 12e72319405c12da9c0565cf234b1f1b
BLAKE2b-256 1931cf2f904eb4e2c9fd27c4dee22efb7a6d68113f86a2ec48842a7e529b3634

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp38-cp38-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 27f17f3d45ed66f0df643ec2a8e888aca437b4757047ef9becfb9ec54cf32de4
MD5 d35d4d77d685bf76a7c1eb6a7f436694
BLAKE2b-256 e2aa81e2bd9bdc64f2377c533a321311b3ecfea3c1c2cd8a06e7a6d096c77029

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 17692cfb461125841a79b75b5641a995cef9e4277300f60615489e1ea41df001
MD5 a84671b249220687bd689c2388a71a61
BLAKE2b-256 a7a9c53de21304edfad73e1d2d97b3f0a98fdb1fb3ef0ae945e8101b8805029d

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 79ed23004a11bab59c7880a60ccca123342e321d5a3588fd8b449a70cf79f6f3
MD5 aa9df8a3208e58e277f78b87bc1f11b5
BLAKE2b-256 a3d6cc1b10af39f52515b9e405a48b34bcefbb63a635205a916cdb7d78e20edc

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ba50b39f9bdf4428c434a64fafaa67a09bba827013e95d5905c9bd389bead236
MD5 ad2005a6fb5d018d77d439b4f2f2a362
BLAKE2b-256 978ffaa8a3f364da70ee0c5721a09ef69bdc434c2a9749dd1dd998d4ecb9d223

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d92cf4f798e3cbbc6b0e31b784fb9c43186192bd563494c87702374545cabc1c
MD5 118d0539ac41e87a22c403570ed34034
BLAKE2b-256 332e9bf35f35a3aac378ac36118d88501a6de3ad6db29a2918b060e965479fca

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 202590d238f2dae01ac38eaf16026ee3e97df74a5011e94de67430e3a12e9d9d
MD5 dfe78e90d9bfdbdac862dc90fac0bf2d
BLAKE2b-256 fa9141375d27dc5bce75c0cd5a2df2ce716ea33b180827a4148bbc44fffe88c4

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ed63f6ca7de805999bf875151e6994925e4df9b2e9d5cbbdd379304136ddfe44
MD5 c598ad0665fc1c5ebab0254d6696d757
BLAKE2b-256 65bb8dc06860e4e84e0f190ce271d7bd0c37b984390c09ffbee0be0949224a7d

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e76ba180aadb0db0b5557b8435fe72c2db544fdd0ac4771df013adaab0ffd58b
MD5 0839d946ead0cedd301ead47de6e3ba0
BLAKE2b-256 4de43d89380f1c7e660462f9f0a7f0498ba4ef57ed5cf150abe209077d341e1f

See more details on using hashes here.

File details

Details for the file clp_ffi_py-0.0.12-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for clp_ffi_py-0.0.12-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f1f20e62a8d3d3bfac2ac76546aa389de64ca1a822addbe256c2f49ca3fd0bf5
MD5 635ccb75a22d796468b4998b5ad459e5
BLAKE2b-256 62482d34dd630155dfb67979bcc069b9009e105496c316b8d7bb989714108701

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page