Skip to main content

High Dynamic Range histogram in native python

Project description

High Dynamic Range Histogram python implementation

https://github.com/HdrHistogram/HdrHistogram_py/actions/workflows/tox.yml/badge.svg?branch=master

This repository contains a port to python of most of the original Java HDR Histogram library:

  • Basic histogram value recording
    • record value

    • record value with correction for coordinated omission

  • Supports 16-bit, 32-bit and 64-bit counters

  • All histogram basic query APIs
    • get value at percentile

    • get total count

    • get min value, max value, mean, standard deviation

  • All iterators are implemented: all values, recorded, percentile, linear, logarithmic

  • Text file histogram log writer and log reader (.hlog file)

  • Dump histogram in plot-friendly percentile table (.hgrm format)

  • Encoding and decoding Hdr Histogram “histoblobs” (HdrHistogram V2 format only, V1 and V0 not supported)

  • supports Python 3.10, 3.11, 3.12, 3.13 and 3.14 (0.9.2 is the latest release supporting python 2.7)

Histogram V2 format encoding inter-operability with Java and C versions verified through unit test code.

Python API

Users of this library can generally play one of 2 roles (sometimes both):

  • record values into 1 or more histograms (histogram provisioning)

  • analyze and display histogram content and characteristics (histogram query)

In distributed cases, histogram provisioning can be be done remotely (and possibly in multiple locations) then aggregated in a central place for analysis.

A histogram instance can be created using the HdrHistogram class and specifying the minimum and maximum trackable value and the number of precision digits desired. For example to create a histogram that can count values in the [1..3600000] range and 1% precision (this could be for example to track latencies in the range [1 msec..1 hour]):

histogram = HdrHistogram(1, 60 * 60 * 1000, 2)

By default counters are 64-bit while 16 or 32-bit counters can be specified (word_size option set to 2 or 4 bytes). Note that counter overflow is not tested in this version so be careful when using smaller counter sizes.

Once created it is easy to add values to a histogram:

histogram.record_value(latency)

If the code that generates the values is subject to Coordinated Omission, use the corrected version of that method (example when the expected interval is 10 msec):

histogram.record_corrected_value(latency, 10)

At any time, the histogram can be queried to return any property, such as getting the total number of values recorded or the value at a given percentile:

count = histogram.get_total_count()
value = histogram.get_value_at_percentile(99.9)

Recorded values can be iterated over using the recorded iterator:

for item in histogram.get_recorded_iterator():
    print('value=%f count=%d percentile=%f' %
            item.value_iterated_to,
            item.count_added_in_this_iter_step,
            item.percentile)

A histoblob (base64 encoded/compressed histogram) is a convenient way to serialize and store a histogram instance without losing precision (lossless). The resulting base 64 string can then be stored inside a standard container such as a JSON document, XML, CSV…

The histoblob for a histogram instance can be generated by calling the compress method:

histoblob = histogram.encode()

A histoblob can be decoded into a histogram instance with the decode method:

decoded_histogram = HdrHistogram.decode(histoblob)
count = decoded_histogram.get_total_count()

In the case of aggregation, the decode_and_add method can be used:

aggregation_histogram.decode_and_add(histoblob)

If you want to print the histogram in a plotter-friendly percentile tabular format (.hgrm):

histogram.output_percentile_distribution(file, scaling_ratio)

For additional help on how to use the API:

  • browse through the python code and check the API documentation in the comment section for each method (where available)

  • the best documentation is by looking at the test code under the test directory

The test code (https://github.com/HdrHistogram/HdrHistogram_py/blob/master/test/test_hdrhistogram.py) pretty much covers every API.

Installation

Pre-requisites:

Make sure you have Python 3.10 or later, and pip installed

Binary installation

This is the preferred method for most installations where you only need to use this library. Use a python virtual environment if needed.

pip install hdrhistogram

Prebuilt binary wheels are published to PyPI for Linux, macOS and Windows across the supported CPython versions (3.10 to 3.14), so pip will normally install without needing a local build. If no matching wheel is available for your platform, pip falls back to building from the source distribution, which requires a C compiler (for the small C extension that handles the low level encoding/decoding). You can also build from the git source using the setuptools procedure below.

Source code installation Package build and Unit Testing

This is the method to use for any development work with this library or if you want to read or run the test code.

Install the unit test automation harness tox and hdrhistogram from github:

pip install tox
# cd to the proper location to clone the repository
git clone https://github.com/HdrHistogram/HdrHistogram_py.git
cd HdrHistogram_py

Running tox will execute the following environments (see tox.ini):

  • py310 to py314: the python unit test suite with coverage, under each supported Python version installed on the host

  • lint: pylint static analysis

Just run tox without any argument (the first run will take more time as tox will setup the execution environment and download the necessary packages):

$ tox
...
py313: commands[0]> pytest --cov=hdrh --cov-report=term-missing -vv test
...
====================== 39 passed in 5.11s ======================
lint: commands[0]> pylint --rcfile pylint.rc hdrh test

--------------------------------------------------------------------
Your code has been rated at 10.00/10

  py310: OK
  py311: OK
  py312: OK
  py313: OK
  py314: OK
  lint: OK
  congratulations :)

Display percentile table (.hgrm) from a histoblob (dump_hdrh)

To print the .hgrm percentile table of any histoblob, use the dump_hdrh tool (installed along with the package).

$ dump_hdrh

Usage: dump_hdrh [<string encoded hdr histogram>]*

You can pass one or more histoblobs to the tool:

$ dump_hdrh 'HISTFAAAACl4nJNpmSzMwMDAxQABzFCaEUzOmNZg/wEi0NzIyPSYlWmpGBMAh4gG4A=='

Dumping histogram: HISTFAAAACl4nJNpmSzMwMDAxQABzFCaEUzOmNZg/wEi0NzIyPSYlWmpGBMAh4gG4A==

      Value     Percentile TotalCount 1/(1-Percentile)

139647.000 0.000000000000          1           1.00
139647.000 0.100000000000          1           1.11
139647.000 0.190000000000          1           1.23
139647.000 0.271000000000          1           1.37
187135.000 0.343900000000          2           1.52
187135.000 0.409510000000          2           1.69
187135.000 0.468559000000          2           1.88
187135.000 0.521703100000          2           2.09
187135.000 0.569532790000          2           2.32
187135.000 0.612579511000          2           2.58
187135.000 0.651321559900          2           2.87
477695.000 0.686189403910          3           3.19
477695.000 1.000000000000          3
#[Mean    =   268074.667, StdDeviation   =   149397.390]
#[Max     =   477695.000, TotalCount     =        3.000]
#[Buckets =           14, SubBuckets     =         2048]

Aggregation of Distributed Histograms

Aggregation of multiple histograms into 1 is useful in cases where tools that generate these individual histograms have to run in a distributed way in order to scale sufficiently. As an example, the wrk2 tool (https://github.com/giltene/wrk2.git) is a great tool for measuring the latency of HTTP requests with a large number of connections. Although this tool can support thousands of connections per process, some setups require massive scale in the order of hundreds of thousands of connections which require running a large number of instances of wrk processes, possibly on a large number of servers. Given that each instance of wrk can generate a separate histogram, assessing the scale of the entire system requires aggregating all these histograms into 1 in a way that does not impact the accuracy of the results. So there are 2 problems to solve:

  • find a way to properly aggregate multiple histograms without losing any detail

  • find a way to transport all these histograms into a central place

This library provides a solution for the aggregation part of the problem:

  • reuse the HDR histogram compression format version 1 to encode and compress a complete histogram that can be sent over the wire to the aggregator

  • provide python APIs to easily and efficiently:

    • compress an histogram instance into a transportable string

    • decompress a compressed histogram and add it to an existing histogram

Refer to the unit test code (test/test_hdrhistogram.py) to see how these APIs can be used.

Histogram wire encoding and size

Histograms are encoded using the HdrHistogram V2 format which is based on an adapted ZigZag LEB128 encoding where:

  • consecutive zero counters are encoded as a negative number representing the count of consecutive zeros

  • non zero counter values are encoded as a positive number

An empty histogram (all zeros counters) is encoded in exactly 48 bytes regardless of the counter size. A typical histogram (2 digits precision 1 usec to 1 day range) can be encoded in less than the typical MTU size of 1500 bytes.

This format is compatible with the HdrHistogram Java and C implementations.

Performance

Histogram value recording has the same cost characteristics than the original Java version since it is a direct port (fixed cost for CPU and reduced memory usage). Encoding and decoding in the python version is very fast and close to native performance thanks to the use of:

  • integrated C extensions (native C code called from python) that have been developed to handle the low-level byte encoding/decoding/addition work at native speed

  • native compression library (zlib and base64)

On a macbook pro (2019 Intel Core i7 @ 2.6GHz) and Linux server (Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz):

Operation Time in usec

Macbook

Linux

record a single value

1

1

encode typical histogram

75

68

decode and add

100

110

The typical histogram is defined as one that has 30% of 64-bit buckets filled with sequential values starting at 20% of the array, for a range of 1 usec to 24 hours and 2 digits precision. This represents a total of 3968 buckets, of which the first 793 are zeros, the next 1190 buckets have a sequential/unique value and all remaining buckets are zeros, for an encoded length of 3116 bytes. Most real-world histograms have a much sparser pattern that will yield a lower encoding and decoding time. Decode and add will decode the encoded histogram and add its content to an existing histogram.

To measure the performance of encoding and decoding and get the profiling, you must clone the github repository with git, install it (in a virtual environment if needed) and call pytest with the –runperf option. The 2 profiling functions will provide the profiling information for encoding and decoding the typical histogram 1000 times (so the time values shown are seconds for 1000 decodes/decodes).

Example of run on Linux:

# pytest -s -k test_cod_perf --runperf
=============================================================================== test session starts ================================================================================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /root/HdrHistogram_py, configfile: tox.ini
collected 39 items / 38 deselected / 1 selected

test_hdrhistogram.py 0:00:00.061559
         35305 function calls in 0.068 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      1    0.000    0.000    0.068    0.068 <string>:1(<module>)
   2000    0.002    0.000    0.002    0.000 __init__.py:483(string_at)
   1000    0.000    0.000    0.004    0.000 base64.py:51(b64encode)
      1    0.000    0.000    0.000    0.000 codec.py:119(__init__)
      1    0.000    0.000    0.000    0.000 codec.py:154(_init_counts)
      1    0.000    0.000    0.000    0.000 codec.py:172(get_counts)
   1000    0.004    0.000    0.050    0.000 codec.py:214(compress)
      1    0.000    0.000    0.000    0.000 codec.py:256(__init__)
      1    0.000    0.000    0.000    0.000 codec.py:285(get_counts)
   1000    0.002    0.000    0.061    0.000 codec.py:291(encode)
      1    0.000    0.000    0.000    0.000 codec.py:65(get_encoding_cookie)
      1    0.000    0.000    0.000    0.000 codec.py:69(get_compression_cookie)
   2190    0.001    0.000    0.001    0.000 histogram.py:142(_clz)
   2190    0.002    0.000    0.003    0.000 histogram.py:153(_get_bucket_index)
   2190    0.001    0.000    0.001    0.000 histogram.py:159(_get_sub_bucket_index)
   1190    0.000    0.000    0.000    0.000 histogram.py:162(_counts_index)
   1190    0.001    0.000    0.003    0.000 histogram.py:172(_counts_index_for)
   1190    0.001    0.000    0.005    0.000 histogram.py:177(record_value)
   1190    0.000    0.000    0.000    0.000 histogram.py:232(get_value_from_sub_bucket)
   1190    0.001    0.000    0.001    0.000 histogram.py:235(get_value_from_index)
      1    0.000    0.000    0.000    0.000 histogram.py:34(get_bucket_count)
   1000    0.000    0.000    0.061    0.000 histogram.py:419(encode)
   1000    0.001    0.000    0.003    0.000 histogram.py:462(get_counts_array_index)
      1    0.000    0.000    0.000    0.000 histogram.py:65(__init__)
      1    0.001    0.001    0.006    0.006 test_hdrhistogram.py:408(fill_hist_counts)
      1    0.000    0.000    0.068    0.068 test_hdrhistogram.py:526(check_cod_perf)
   5000    0.000    0.000    0.000    0.000 {built-in method _ctypes.addressof}
   1000    0.004    0.000    0.004    0.000 {built-in method binascii.b2a_base64}
   2190    0.000    0.000    0.000    0.000 {built-in method builtins.bin}
      1    0.000    0.000    0.068    0.068 {built-in method builtins.exec}
   3190    0.000    0.000    0.000    0.000 {built-in method builtins.len}
   1190    0.000    0.000    0.000    0.000 {built-in method builtins.max}
   1190    0.000    0.000    0.000    0.000 {built-in method builtins.min}
      1    0.000    0.000    0.000    0.000 {built-in method builtins.print}
      1    0.000    0.000    0.000    0.000 {built-in method math.ceil}
      1    0.000    0.000    0.000    0.000 {built-in method math.floor}
      4    0.000    0.000    0.000    0.000 {built-in method math.log}
      2    0.000    0.000    0.000    0.000 {built-in method math.pow}
      2    0.000    0.000    0.000    0.000 {built-in method now}
   1000    0.006    0.000    0.006    0.000 {built-in method pyhdrh.encode}
   1000    0.039    0.000    0.039    0.000 {built-in method zlib.compress}
      1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

And for decoding:

# pytest -s -k test_dec_perf --runperf
=============================================================================== test session starts ================================================================================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /root/HdrHistogram_py, configfile: tox.ini
collected 39 items / 38 deselected / 1 selected

test_hdrhistogram.py 0:00:00.106705
         118327 function calls in 0.113 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      1    0.000    0.000    0.113    0.113 <string>:1(<module>)
      2    0.000    0.000    0.000    0.000 __init__.py:483(string_at)
   1000    0.001    0.000    0.001    0.000 base64.py:34(_bytes_from_decode_data)
      1    0.000    0.000    0.000    0.000 base64.py:51(b64encode)
   1000    0.001    0.000    0.010    0.000 base64.py:65(b64decode)
   1001    0.001    0.000    0.019    0.000 codec.py:119(__init__)
   1001    0.004    0.000    0.004    0.000 codec.py:154(_init_counts)
   1000    0.002    0.000    0.012    0.000 codec.py:157(init_counts)
   3001    0.000    0.000    0.000    0.000 codec.py:172(get_counts)
   1000    0.002    0.000    0.018    0.000 codec.py:175(_decompress)
      1    0.000    0.000    0.000    0.000 codec.py:214(compress)
   1001    0.002    0.000    0.002    0.000 codec.py:256(__init__)
   3001    0.001    0.000    0.001    0.000 codec.py:285(get_counts)
      1    0.000    0.000    0.000    0.000 codec.py:291(encode)
   1000    0.003    0.000    0.032    0.000 codec.py:313(decode)
   1000    0.001    0.000    0.011    0.000 codec.py:359(add)
   3000    0.001    0.000    0.001    0.000 codec.py:56(get_cookie_base)
   1000    0.000    0.000    0.001    0.000 codec.py:59(get_word_size_in_bytes_from_cookie)
      1    0.000    0.000    0.000    0.000 codec.py:65(get_encoding_cookie)
   1001    0.000    0.000    0.000    0.000 codec.py:69(get_compression_cookie)
      1    0.000    0.000    0.000    0.000 expression.py:81(lex)
   7191    0.003    0.000    0.005    0.000 histogram.py:142(_clz)
   7191    0.006    0.000    0.011    0.000 histogram.py:153(_get_bucket_index)
   7191    0.002    0.000    0.002    0.000 histogram.py:159(_get_sub_bucket_index)
   1190    0.000    0.000    0.000    0.000 histogram.py:162(_counts_index)
   1190    0.001    0.000    0.003    0.000 histogram.py:172(_counts_index_for)
   1190    0.001    0.000    0.005    0.000 histogram.py:177(record_value)
   10190   0.002    0.000    0.002    0.000 histogram.py:232(get_value_from_sub_bucket)
   4190    0.002    0.000    0.003    0.000 histogram.py:235(get_value_from_index)
   2000    0.002    0.000    0.005    0.000 histogram.py:244(get_lowest_equivalent_value)
   4000    0.004    0.000    0.013    0.000 histogram.py:252(get_highest_equivalent_value)
   1000    0.000    0.000    0.000    0.000 histogram.py:330(get_total_count)
   1001    0.007    0.000    0.007    0.000 histogram.py:34(get_bucket_count)
   2000    0.001    0.000    0.007    0.000 histogram.py:346(get_max_value)
   2000    0.001    0.000    0.007    0.000 histogram.py:351(get_min_value)
      1    0.000    0.000    0.000    0.000 histogram.py:419(encode)
   1000    0.001    0.000    0.006    0.000 histogram.py:445(set_internal_tacking_values)
      1    0.000    0.000    0.000    0.000 histogram.py:462(get_counts_array_index)
   1000    0.005    0.000    0.035    0.000 histogram.py:513(add)
   1000    0.001    0.000    0.106    0.000 histogram.py:544(decode_and_add)
   1000    0.002    0.000    0.071    0.000 histogram.py:563(decode)
   1001    0.008    0.000    0.037    0.000 histogram.py:65(__init__)
      1    0.001    0.001    0.006    0.006 test_hdrhistogram.py:408(fill_hist_counts)
      1    0.000    0.000    0.113    0.113 test_hdrhistogram.py:539(check_dec_perf)
   3005    0.000    0.000    0.000    0.000 {built-in method _ctypes.addressof}
   1000    0.008    0.000    0.008    0.000 {built-in method binascii.a2b_base64}
      1    0.000    0.000    0.000    0.000 {built-in method binascii.b2a_base64}
   7191    0.001    0.000    0.001    0.000 {built-in method builtins.bin}
      1    0.000    0.000    0.113    0.113 {built-in method builtins.exec}
   2000    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
   9192    0.001    0.000    0.001    0.000 {built-in method builtins.len}
   3190    0.001    0.000    0.001    0.000 {built-in method builtins.max}
   3190    0.001    0.000    0.001    0.000 {built-in method builtins.min}
      1    0.000    0.000    0.000    0.000 {built-in method builtins.print}
   1001    0.000    0.000    0.000    0.000 {built-in method math.ceil}
   1001    0.000    0.000    0.000    0.000 {built-in method math.floor}
   4004    0.001    0.000    0.001    0.000 {built-in method math.log}
   2002    0.000    0.000    0.000    0.000 {built-in method math.pow}
      2    0.000    0.000    0.000    0.000 {built-in method now}
   1000    0.008    0.000    0.008    0.000 {built-in method pyhdrh.add_array}
   1000    0.007    0.000    0.007    0.000 {built-in method pyhdrh.decode}
      1    0.000    0.000    0.000    0.000 {built-in method pyhdrh.encode}
      1    0.000    0.000    0.000    0.000 {built-in method zlib.compress}
   1000    0.014    0.000    0.014    0.000 {built-in method zlib.decompress}
      1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
   2000    0.001    0.000    0.001    0.000 {method 'from_buffer_copy' of '_ctypes.PyCStructType' objects}

Limitations, Caveats and Known Issues

The latest features and bug fixes of the original HDR histogram library may not be available in this python port. Examples of notable features/APIs not implemented:

  • concurrency support (AtomicHistogram, ConcurrentHistogram…)

  • DoubleHistogram

  • histogram auto-resize

  • recorder function

This implementation has byte endianess encoding issues when used with PyPy due to a limitation of the PyPy code (see https://github.com/HdrHistogram/HdrHistogram_py/issues/13).

The current implementation has issues running on Windows 32-bit systems (library crashing during decode).

Dependencies

The only dependency (outside of using pytest and tox for the unit testing) is the small pbr python package which takes care of the versioning (among other things).

Publishing a New Release to PyPI

To create a new release, apply a new release tag then create a new Release using GitHub (this requires the appropriate permissions). Publishing a Release triggers the Upload Python Package GitHub Actions workflow (.github/workflows/python-publish.yml), which builds the source distribution and binary wheels for Linux, macOS and Windows (CPython 3.10 to 3.14) and uploads them to PyPI using Trusted Publishing (no API token required).

Licensing

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contribution

External contribution, forks and GitHub pull requests are welcome. For any discussion, head to the gitter HdrHistogram space at https://gitter.im/HdrHistogram/HdrHistogram

Acknowledgements

The python code was directly ported from the original HDR Histogram Java and C libraries:

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

hdrhistogram-0.10.7.tar.gz (63.1 kB view details)

Uploaded Source

Built Distributions

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

hdrhistogram-0.10.7-cp314-cp314-win_amd64.whl (40.5 kB view details)

Uploaded CPython 3.14Windows x86-64

hdrhistogram-0.10.7-cp314-cp314-win32.whl (40.0 kB view details)

Uploaded CPython 3.14Windows x86

hdrhistogram-0.10.7-cp314-cp314-musllinux_1_2_x86_64.whl (47.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

hdrhistogram-0.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (47.9 kB view details)

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

hdrhistogram-0.10.7-cp314-cp314-macosx_11_0_arm64.whl (37.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

hdrhistogram-0.10.7-cp313-cp313-win_amd64.whl (40.3 kB view details)

Uploaded CPython 3.13Windows x86-64

hdrhistogram-0.10.7-cp313-cp313-win32.whl (39.8 kB view details)

Uploaded CPython 3.13Windows x86

hdrhistogram-0.10.7-cp313-cp313-musllinux_1_2_x86_64.whl (47.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

hdrhistogram-0.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (47.9 kB view details)

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

hdrhistogram-0.10.7-cp313-cp313-macosx_11_0_arm64.whl (37.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

hdrhistogram-0.10.7-cp312-cp312-win_amd64.whl (40.3 kB view details)

Uploaded CPython 3.12Windows x86-64

hdrhistogram-0.10.7-cp312-cp312-win32.whl (39.8 kB view details)

Uploaded CPython 3.12Windows x86

hdrhistogram-0.10.7-cp312-cp312-musllinux_1_2_x86_64.whl (47.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

hdrhistogram-0.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (47.8 kB view details)

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

hdrhistogram-0.10.7-cp312-cp312-macosx_11_0_arm64.whl (37.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

hdrhistogram-0.10.7-cp311-cp311-win_amd64.whl (40.3 kB view details)

Uploaded CPython 3.11Windows x86-64

hdrhistogram-0.10.7-cp311-cp311-win32.whl (39.8 kB view details)

Uploaded CPython 3.11Windows x86

hdrhistogram-0.10.7-cp311-cp311-musllinux_1_2_x86_64.whl (47.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

hdrhistogram-0.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (47.7 kB view details)

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

hdrhistogram-0.10.7-cp311-cp311-macosx_11_0_arm64.whl (37.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

hdrhistogram-0.10.7-cp310-cp310-win_amd64.whl (40.3 kB view details)

Uploaded CPython 3.10Windows x86-64

hdrhistogram-0.10.7-cp310-cp310-win32.whl (39.6 kB view details)

Uploaded CPython 3.10Windows x86

hdrhistogram-0.10.7-cp310-cp310-musllinux_1_2_x86_64.whl (47.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

hdrhistogram-0.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (47.5 kB view details)

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

hdrhistogram-0.10.7-cp310-cp310-macosx_11_0_arm64.whl (36.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file hdrhistogram-0.10.7.tar.gz.

File metadata

  • Download URL: hdrhistogram-0.10.7.tar.gz
  • Upload date:
  • Size: 63.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7.tar.gz
Algorithm Hash digest
SHA256 bed4785a5e40e6260306e8e27ee3d31299263640cd7618040df88447ed57c2bd
MD5 75e18e8510f29e1eae2e737687b40cb0
BLAKE2b-256 79ba0f5b04dd55da744e1f8ed251f12286fb21e488f6c9671323016e4e56a106

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7.tar.gz:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e1aa1713caabe8677b36d1ebbe1ffa9a1b1e61cb0e230d06b01f08e96df5aafb
MD5 3cbd0e4abad5b8655aed4d2630779c89
BLAKE2b-256 e51492c5c77e563785625b0cbc8deab50918328e20c0e3f8d98decb2e4e5d738

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp314-cp314-win_amd64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp314-cp314-win32.whl.

File metadata

  • Download URL: hdrhistogram-0.10.7-cp314-cp314-win32.whl
  • Upload date:
  • Size: 40.0 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 9c227e975480d1047debcac98458942053ac3f18862030800f6a68741dfaeb4a
MD5 66c59db8556b72a5b20ccc81a598e8a5
BLAKE2b-256 0ada9a775fa2e9c9e370a376f43ce3fac306ddc1811422521510564703844e8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp314-cp314-win32.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7bafdf18bcb142c0fe47c7b64ae3bd911b0593df4d04f1113a2ba88f05dd989d
MD5 6fb53f348e15d800d137ffdfd628f737
BLAKE2b-256 9a8c217f0987a175dcea53317484ca10a699a0591231045632c8a2c18da4d35b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 2757e885a767e35be97094f07acbf9a76750c556afbb25d40111b5560786887e
MD5 4873e4a0fc7496467b242459bbdf5706
BLAKE2b-256 92faf9fc7c9fed0af5fdc8316770a667a4bf94ffdda9b9c155f71a164a95a849

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2241f3e1f7449eb3013a866b5a21e83c8bdc59c8ade447b7f7fe8494e367f6d8
MD5 7cd5f39c11bf30f0663f46599029e66b
BLAKE2b-256 1074e4aebac62e490c15876f275db923a1c3f9c8c174e22d02fe63c23ad12815

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c993e238a1e174fcb9fe3039d54167774ed1af1e817c775164072428f0cfd50
MD5 7fe680ce8e002eb42601a982192514fb
BLAKE2b-256 68f95e31e6f078d39c556fd25ae3e8a40063899844c7dfdfc21932ef6d9a816d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp313-cp313-win_amd64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp313-cp313-win32.whl.

File metadata

  • Download URL: hdrhistogram-0.10.7-cp313-cp313-win32.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 e89342a35aadd25210da5d3ff2dc483ad773b3a83ca659a5ac5ca1534f0c823b
MD5 91e10b25537b9c4851abf15882098391
BLAKE2b-256 b4ccb1958de51bffdc8628d00002cd5cf93650983e52c9c1e016688a75d7e3a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp313-cp313-win32.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec633038b161c927d8ca16bff53c89da1109200a77148ab705833883de968b0e
MD5 ef1e5c0e8e8c0b2243bc17af41991486
BLAKE2b-256 a9e77e4ba9eca5d6a5b9dfb2ca0d4770392ca9ab22d93432e5d20ffe72c4ff82

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 02f9c64e1a229580805c9a4dc149348de8b72d76f25e2ea76b49df46911ddded
MD5 09d6e0f1ab6cd572aa3986c656478110
BLAKE2b-256 0ebb8d1b174509b09b8156d61590f3dfd46bfd6c971c12ee9a178b433ff2f9e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ff91aba2a0026ebc72b9af602537dbdc629711dc00cca738b9e7232d8772eb2
MD5 0d5b034bf7af860ed8165ce31130cb44
BLAKE2b-256 3b9e175ede14d9fefb984d3e5496e80d2c89c27e116ca4400a2b3d463da635b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a510ef75cb3e3e8f700db3b0de8e1abd569fb27d8f7cd3d15864a2add34105bf
MD5 0469faf7f50d1492d35c08d6322210c3
BLAKE2b-256 c8cccabc2b09401de81c141f940287d1a3efcdea3a51f4ace8b1f7debad017e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp312-cp312-win_amd64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp312-cp312-win32.whl.

File metadata

  • Download URL: hdrhistogram-0.10.7-cp312-cp312-win32.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 16bba4a80d90a89cb6ce783374faadc47d1f42adb1f0649428e04956353a0d12
MD5 88e19f37bec15d1661f49b6e056afd89
BLAKE2b-256 410c3e0ed4ef1c36cbe56d65600483c92ef05fa1ef1894f94cf8bc92c4f72d07

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp312-cp312-win32.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1606c12218bc20a486e0b8433e01f71019c3e3a606f294cff0019c7e5814b834
MD5 d8112ce15afd01b9dcaaddb6d4e200bd
BLAKE2b-256 672408bdb508b3370334ce72b5ac72365e9e68cccb668ba0d2ab7a9ee0cf06db

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 7510bf1e61ce5eab2d6d3150ef2fa59e4d286f056a1e7ac83e9625e36b9161ac
MD5 1ba84e6b2db26daecb20f7da099c951e
BLAKE2b-256 c8c5658824013952f50ba2493cce8239d9938b463c3fc25b946205cb984b33dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0026faa6e7364dda08068924271c1a9143fb99a28b4d88281df33004d24d342a
MD5 ca329258cad3fa33cffaabdef9d895bc
BLAKE2b-256 26bf396877842775bc51761f7e7d12569d304315d26283ab2ec98556b8f58e5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 29512ce81d08125f3f485118df4ca64ac858f6ce08e15fc564eb8c10a563acf6
MD5 1f095e76d8f980194b4df25b1cd376e4
BLAKE2b-256 b2b95d2c970a1c7e028652aafca8207af160348f89bad7fef3a8abf77734ef63

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp311-cp311-win_amd64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp311-cp311-win32.whl.

File metadata

  • Download URL: hdrhistogram-0.10.7-cp311-cp311-win32.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 863565fabdf17f7fb0a64366b90879cfb9e4789a7b9db1989c88e766a7e4e8d4
MD5 ebb0168bc0e07cb0ae0896333e90145e
BLAKE2b-256 c655eabd4a23466535aec40d119a6ebac90ad194dd8c49ac29ea602bedd27ec9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp311-cp311-win32.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 757cb357f82212e9c371d4a9da3f3ec60fe8271f0f69a5ee19c57971541f7c42
MD5 7882b812c762dfa66cf4d215d4a7240d
BLAKE2b-256 31213d3452bd9468375bc1b298722370fe31ae9371e15db0ead1393423edbca9

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 13d3aac0b543f09e469b030dacc75955ae50041b8557f11ebaf8a3879a03c014
MD5 11c51d9afda3f808356333dddaf1e792
BLAKE2b-256 9dc5f217a5371df08abb4a2d7e542cf6dabcca2364034f02dd2bb39d5c7be46e

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c33bdd78cab34f4dec5158fc8f6b1287e6e14602de1abe71ed8d8be5d8ce4318
MD5 cda498230b2f385e32b53ce3b6b084fd
BLAKE2b-256 d02fa9be90415cae58052c04d754c27466a01234f26297415bcc0ea7d006d826

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d4d9866af0bb18d1f843e1cc31373b5144136e5b4c6b41cd54fc06b69c34d792
MD5 5b45ea2dfdad3adc68bae318a462f9e6
BLAKE2b-256 288c50ed49da09a84216abdbe3228b1ddf8443b3e46febe46c89c33646617a44

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp310-cp310-win_amd64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp310-cp310-win32.whl.

File metadata

  • Download URL: hdrhistogram-0.10.7-cp310-cp310-win32.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for hdrhistogram-0.10.7-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 36d7225b7097f1cc801357a9220f47d3d6289671cf52fdd82c257c1ceda57204
MD5 5afc6d28a21a5fe904fcfefdcaa3de19
BLAKE2b-256 f89c841616129de936685cbc538a12de9ea973f0e721053bcada0e304751ff15

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp310-cp310-win32.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0f8b15dd55a6d028ba597583f1ed754a4e8b33f07737bcff22c4e4393c7c46a6
MD5 8bb15fbf45a50f35aac28404530b064e
BLAKE2b-256 0207448a1daa5ff14523609ad6d7ee9370b94701138697ff4b54cfa3825f023d

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 4a1c96a83ff377bd43f8db7689ddca66638ded58ca67023f773ae2662a89786b
MD5 b8c23ac37d66fc3b323630bc5aa42c45
BLAKE2b-256 e8f30a3700685fd96425ef48e2e562f4929bc0c92abf8c188815e1a8b6e96e29

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hdrhistogram-0.10.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hdrhistogram-0.10.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1212f50bdacb9f310ab0e644ea524886c73ab2cbdaebe9f14cb72056a99f5c8
MD5 3f9b0a5b753707c6249b7c8f8e5695e8
BLAKE2b-256 0e7f60b5eb87245a768140ed6c00818ae49e631d0b7f91f05de15111ea78bfc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for hdrhistogram-0.10.7-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-publish.yml on HdrHistogram/HdrHistogram_py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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