Skip to main content

RunStats: Computing Statistics and Regression in One Pass

RunStats is an Apache2 licensed Python module for online statistics and online regression. Statistics and regression summaries are computed in a single pass. Previous values are not recorded in summaries.

Long running systems often generate numbers summarizing performance. It could be the latency of a response or the time between requests. It’s often useful to use these numbers in summary statistics like the arithmetic mean, minimum, standard deviation, etc. When many values are generated, computing these summaries can be computationally intensive. It may even be infeasible to keep every recorded value. In such cases computing online statistics and online regression is necessary.

In other cases, you may only have one opportunity to observe all the recorded values. Python’s generators work exactly this way. Traditional methods for calculating the variance and other higher moments requires multiple passes over the data. With generators, this is not possible and so computing statistics in a single pass is necessary.

There are also scenarios where a user is not interested in a complete summary of the entire stream of data but rather wants to observe the current state of the system based on the recent past. In these cases exponential statistics are used. Instead of weighting all values uniformly in the statistics computation, an exponential decay weight is applied to older values. The decay rate is configurable and provides a mechanism for balancing recent values with past values.

The Python RunStats module was designed for these cases by providing classes for computing online summary statistics and online linear regression in a single pass. Summary objects work on sequences which may be larger than memory or disk space permit. They may also be efficiently combined together to create aggregate summaries.

Features

  • Pure-Python

  • Fully Documented

  • 100% Test Coverage

  • Numerically Stable

  • Optional Cython-optimized Extension (5-100 times faster)

  • Statistics summary computes mean, variance, standard deviation, skewness, kurtosis, minimum and maximum.

  • Regression summary computes slope, intercept and correlation.

  • Developed on Python 3.9

  • Tested on CPython 3.6, 3.7, 3.8, 3.9

  • Tested on Linux, Mac OS X, and Windows

  • Tested using GitHub Actions

https://github.com/grantjenks/python-runstats/workflows/integration/badge.svg

Quickstart

Installing RunStats is simple with pip:

$ pip install runstats

You can access documentation in the interpreter with Python’s built-in help function:

>>> import runstats
>>> help(runstats)                             # doctest: +SKIP
>>> help(runstats.Statistics)                  # doctest: +SKIP
>>> help(runstats.Regression)                  # doctest: +SKIP
>>> help(runstats.ExponentialStatistics)       # doctest: +SKIP

Tutorial

The Python RunStats module provides three types for computing running statistics: Statistics, ExponentialStatistics and Regression.The Regression object leverages Statistics internally for its calculations. Each can be initialized without arguments:

>>> from runstats import Statistics, Regression, ExponentialStatistics
>>> stats = Statistics()
>>> regr = Regression()
>>> exp_stats = ExponentialStatistics()

Statistics objects support four methods for modification. Use push to add values to the summary, clear to reset the summary, sum to combine Statistics summaries and multiply to weight summary Statistics by a scalar.

>>> for num in range(10):
...     stats.push(float(num))
>>> stats.mean()
4.5
>>> stats.maximum()
9.0
>>> stats += stats
>>> stats.mean()
4.5
>>> stats.variance()
8.68421052631579
>>> len(stats)
20
>>> stats *= 2
>>> len(stats)
40
>>> stats.clear()
>>> len(stats)
0
>>> stats.minimum()
nan

Use the Python built-in len for the number of pushed values. Unfortunately the Python min and max built-ins may not be used for the minimum and maximum as sequences are expected instead. Therefore, there are minimum and maximum methods provided for that purpose:

>>> import random
>>> random.seed(0)
>>> for __ in range(1000):
...     stats.push(random.random())
>>> len(stats)
1000
>>> min(stats)
Traceback (most recent call last):
    ...
TypeError: ...
>>> stats.minimum()
0.00024069652516689466
>>> stats.maximum()
0.9996851255769114

Statistics summaries provide five measures of a series: mean, variance, standard deviation, skewness and kurtosis:

>>> stats = Statistics([1, 2, 5, 12, 5, 2, 1])
>>> stats.mean()
4.0
>>> stats.variance()
15.33333333333333
>>> stats.stddev()
3.915780041490243
>>> stats.skewness()
1.33122127314735
>>> stats.kurtosis()
0.5496219281663506

All internal calculations use Python’s float type.

Like Statistics, the Regression type supports some methods for modification: push, clear and sum:

>>> regr.clear()
>>> len(regr)
0
>>> for num in range(10):
...     regr.push(num, num + 5)
>>> len(regr)
10
>>> regr.slope()
1.0
>>> more = Regression((num, num + 5) for num in range(10, 20))
>>> total = regr + more
>>> len(total)
20
>>> total.slope()
1.0
>>> total.intercept()
5.0
>>> total.correlation()
1.0

Regression summaries provide three measures of a series of pairs: slope, intercept and correlation. Note that, as a regression, the points need not exactly lie on a line:

>>> regr = Regression([(1.2, 1.9), (3, 5.1), (4.9, 8.1), (7, 11)])
>>> regr.slope()
1.5668320150154176
>>> regr.intercept()
0.21850113956294415
>>> regr.correlation()
0.9983810791694997

Both constructors accept an optional iterable that is consumed and pushed into the summary. Note that you may pass a generator as an iterable and the generator will be entirely consumed.

The ExponentialStatistics are constructed by providing a decay rate, initial mean, and initial variance. The decay rate has default 0.9 and must be between 0 and 1. The initial mean and variance default to zero.

>>> exp_stats = ExponentialStatistics()
>>> exp_stats.decay
0.9
>>> exp_stats.mean()
0.0
>>> exp_stats.variance()
0.0

The decay rate is the weight by which the current statistics are discounted by. Consequently, (1 - decay) is the weight of the new value. Like the Statistics class, there are four methods for modification: push, clear, sum and multiply.

>>> for num in range(10):
...     exp_stats.push(num)
>>> exp_stats.mean()
3.486784400999999
>>> exp_stats.variance()
11.593430921943071
>>> exp_stats.stddev()
3.4049127627507683

The decay of the exponential statistics can also be changed. The value must be between 0 and 1.

>>> exp_stats.decay
0.9
>>> exp_stats.decay = 0.5
>>> exp_stats.decay
0.5
>>> exp_stats.decay = 10
Traceback (most recent call last):
  ...
ValueError: decay must be between 0 and 1

The clear method allows to optionally set a new mean, new variance and new decay. If none are provided mean and variance reset to zero, while the decay is not changed.

>>> exp_stats.clear()
>>> exp_stats.decay
0.5
>>> exp_stats.mean()
0.0
>>> exp_stats.variance()
0.0

Combining ExponentialStatistics is done by adding them together. The mean and variance are simply added to create a new object. To weight each ExponentialStatistics, multiply them by a constant factor. If two ExponentialStatistics are added then the leftmost decay is used for the new object. The len method is not supported.

>>> alpha_stats = ExponentialStatistics(iterable=range(10))
>>> beta_stats = ExponentialStatistics(decay=0.1)
>>> for num in range(10):
...     beta_stats.push(num)
>>> exp_stats = beta_stats * 0.5 + alpha_stats * 0.5
>>> exp_stats.decay
0.1
>>> exp_stats.mean()
6.187836645

All internal calculations of the Statistics and Regression classes are based entirely on the C++ code by John Cook as posted in a couple of articles:

The ExponentialStatistics implementation is based on:

  • Finch, 2009, Incremental Calculation of Weighted Mean and Variance

The pure-Python version of RunStats is directly available if preferred.

>>> import runstats.core   # Pure-Python
>>> runstats.core.Statistics
<class 'runstats.core.Statistics'>

When importing from runstats the Cython-optimized version _core is preferred and the core version is used as fallback. Micro-benchmarking Statistics and Regression by calling push repeatedly shows the Cython-optimized extension as 20-40 times faster than the pure-Python extension.

Reference and Indices

License

Copyright 2013-2021 Grant Jenks

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.

Release files for runstats 2.0.0

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

Source distribution (sdist)

Source distribution for runstats 2.0.0
File Size Uploaded
runstats-2.0.0.tar.gz 101.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for runstats 2.0.0
File
runstats-2.0.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
runstats-2.0.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
runstats-2.0.0-cp39-cp39-manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
runstats-2.0.0-cp39-cp39-manylinux2010_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-32 Details
runstats-2.0.0-cp39-cp39-manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details
runstats-2.0.0-cp39-cp39-manylinux1_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-32 Details
runstats-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
runstats-2.0.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
runstats-2.0.0-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
runstats-2.0.0-cp38-cp38-manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
runstats-2.0.0-cp38-cp38-manylinux2010_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-32 Details
runstats-2.0.0-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details
runstats-2.0.0-cp38-cp38-manylinux1_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-32 Details
runstats-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
runstats-2.0.0-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
runstats-2.0.0-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
runstats-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
runstats-2.0.0-cp37-cp37m-manylinux2010_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32 Details
runstats-2.0.0-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
runstats-2.0.0-cp37-cp37m-manylinux1_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 Details
runstats-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details
runstats-2.0.0-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
runstats-2.0.0-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details
runstats-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Details
runstats-2.0.0-cp36-cp36m-manylinux2010_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32 Details
runstats-2.0.0-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
runstats-2.0.0-cp36-cp36m-manylinux1_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32 Details
runstats-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64 Details

Total release size: 6.8 MB

Release files / runstats-2.0.0.tar.gz

Download URL runstats-2.0.0.tar.gz
Size 101.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0f9a5e6cc9938bbac3474b17727ffc29fbf5895f33e55ce8843341e0821e77c2
BLAKE2b-256 checksum
How to use checksums
d800f0ce323f237e31a36bf65fa398d4210a579173e2aebda8f9c2ca60d04288
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-win_amd64.whl

Download URL runstats-2.0.0-cp39-cp39-win_amd64.whl
Size 77.4 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
bb60dbf78a6270e89aad50708075ca57c3d0e07d2d91ae6b07f53fa9a4e91d13
BLAKE2b-256 checksum
How to use checksums
588b468259c2097b002e9fc805ad4ac618150270430f3a64e600f9dca1fc6be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-win32.whl

Download URL runstats-2.0.0-cp39-cp39-win32.whl
Size 67.4 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
8c412ade7596f1afd6be5b5d634a55c4affd3c4305d05fcfa6a0accdf60edc16
BLAKE2b-256 checksum
How to use checksums
87294cefd34be64456d9d0aea3d761a052a760ccee4eb5579af0b38513ad1804
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-manylinux2010_x86_64.whl

Download URL runstats-2.0.0-cp39-cp39-manylinux2010_x86_64.whl
Size 385.6 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
571dc4a6abc733da2b36e72b19b0b1743adab142882966e062ee7b5487a29d9a
BLAKE2b-256 checksum
How to use checksums
2869465e5e711d2e79b80d0c5e6a8bd0e2065df03946645eb7b9aae50ffc52cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-manylinux2010_i686.whl

Download URL runstats-2.0.0-cp39-cp39-manylinux2010_i686.whl
Size 365.2 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
ed6e1f1839ed73bfc35ae8fae2d0e6deb826dcbc993f30a620dbb83eb2f07556
BLAKE2b-256 checksum
How to use checksums
63181832abe3b08827130bc260ccbe77a3dc759d09a0bbf39e6af949a3095ce9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-manylinux1_x86_64.whl

Download URL runstats-2.0.0-cp39-cp39-manylinux1_x86_64.whl
Size 385.6 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c133803edbb5d6f23cfb4ca05cea2e74d9ea35b1451a6b3de22987649fd0cf27
BLAKE2b-256 checksum
How to use checksums
fdbe4642fd909dd0d25796128be86b8ff5f3bf9671aae47787b4f8f817a7c929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-manylinux1_i686.whl

Download URL runstats-2.0.0-cp39-cp39-manylinux1_i686.whl
Size 365.2 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
8d47a09a5274f89e709853584527ef5eefbb7f10668c802eb17d82742533a7dc
BLAKE2b-256 checksum
How to use checksums
ecc24223fcb43baf469afceedef2f0a144315316d6c0c17ab11d334f5ad6ff05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL runstats-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 85.5 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c8b2dee3c02c32efab95b0b615a1ba24400e56db4d71591f8367120066d62ffa
BLAKE2b-256 checksum
How to use checksums
48ea8a125cf1e6f2cdfee273d354bbcf2e926936cc33c84d1df7d9899bf1d96e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-win_amd64.whl

Download URL runstats-2.0.0-cp38-cp38-win_amd64.whl
Size 77.3 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
deb75dd5966f6c0a944b4a4f65fbb8f6d67e1c479f6a6c666cdb7cfdec03a731
BLAKE2b-256 checksum
How to use checksums
be010410cbb31adc7945f1e246bf0c67c1e0514daf81e5605f6a27c076b457a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-win32.whl

Download URL runstats-2.0.0-cp38-cp38-win32.whl
Size 67.7 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
c51efa5f1427445b0fdf404b133b407d7ebda2143c090ed60968b975903068c7
BLAKE2b-256 checksum
How to use checksums
c139fbed9642b215b0931fd986714384c96b46653121b868932d1970ee440cc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-manylinux2010_x86_64.whl

Download URL runstats-2.0.0-cp38-cp38-manylinux2010_x86_64.whl
Size 413.1 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
5da7acb950243c3215c4569773d4dc30da746d49c73f14916d83b3bcfc75d7ad
BLAKE2b-256 checksum
How to use checksums
a4b0155a3e0beb40717e265ef691cae91cced05deabbf082b6c05d5f6a105dfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-manylinux2010_i686.whl

Download URL runstats-2.0.0-cp38-cp38-manylinux2010_i686.whl
Size 389.7 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
51c903801765b97b657ccbbba5941a5ad10491ee4e1c071cce4025f20af4b0e8
BLAKE2b-256 checksum
How to use checksums
58061c7269c29548372d3ab0c98408219329e7e71a2726fb563ad2a22cc70fa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-manylinux1_x86_64.whl

Download URL runstats-2.0.0-cp38-cp38-manylinux1_x86_64.whl
Size 413.1 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
dc631f2f1640de2abbd6db48210e4804acc46e00104c6239435d240e67f94c2f
BLAKE2b-256 checksum
How to use checksums
e4027895b5137f54004dd61ae22a18d490de89632271c766a084a8b59fd421c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-manylinux1_i686.whl

Download URL runstats-2.0.0-cp38-cp38-manylinux1_i686.whl
Size 389.7 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
7212a39a457c9858acdaf895f2e3a4f4cb5085c2f5d018498c8904ec83fcfcfb
BLAKE2b-256 checksum
How to use checksums
beaeec2817f3e59520580bed5470bee82c803547322ac818d4c0f9b3f108ff90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl

Download URL runstats-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl
Size 86.3 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3ca82450e7aaef6f0f0a6332e17bc8723f3beae8b430ce32df1fd7ea624b81a5
BLAKE2b-256 checksum
How to use checksums
58d8f5fdbb149f5cdd3b867ac6b3a2e0662c4f727f2bed1996900ddba18cdad8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-win_amd64.whl

Download URL runstats-2.0.0-cp37-cp37m-win_amd64.whl
Size 74.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
2b20f6aa911b812948ac3b886c0d78ea4c7acac5d615bffcf863d11711f91c52
BLAKE2b-256 checksum
How to use checksums
051772d04d2d2e0fe3bb0ff7c1d53b1024090c1da6fc70392f69a630add8bf26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-win32.whl

Download URL runstats-2.0.0-cp37-cp37m-win32.whl
Size 65.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
e52da241b932d56e9f9f947d6e0ab3d71fefc31fe27b610c220e82fc44b4383f
BLAKE2b-256 checksum
How to use checksums
b496b65304cce316a6da48a5df0a5713704289390830cd4e564020672beffeb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl

Download URL runstats-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl
Size 350.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
52985af2b92bb080f886e911f7bc593970aa10fd8febadcfae2e14f8b0ff9b36
BLAKE2b-256 checksum
How to use checksums
12ea48e90ff962bf4ed4068f1e4d68b7e06fa55ebbf5492585716ae1672f1ab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-manylinux2010_i686.whl

Download URL runstats-2.0.0-cp37-cp37m-manylinux2010_i686.whl
Size 328.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
328e1ea2be82a264e09091bd6f4513a47bed131b3ab0f654f8153d853f2978c3
BLAKE2b-256 checksum
How to use checksums
09981c2a7cdcfc1c058b798148ac4cbb4e52b2e001f2ec1cad178dc97f4dfd7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-manylinux1_x86_64.whl

Download URL runstats-2.0.0-cp37-cp37m-manylinux1_x86_64.whl
Size 350.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
7be16c6b781e27f0f931a2a3bc970b00c86790342b804a6a38041a88ef71ba63
BLAKE2b-256 checksum
How to use checksums
1eab99c0de8314c70c7095252470151af91560f09160a9d52f451d7b89bc0ce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-manylinux1_i686.whl

Download URL runstats-2.0.0-cp37-cp37m-manylinux1_i686.whl
Size 328.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
aa71c332ab533e482f62bc7308e0474a87582986c0aecb1015f3a922b5c8283e
BLAKE2b-256 checksum
How to use checksums
5934eb62c9a58e70714717bac65e272f5e0ab38c798718fcbe25d447875f17f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL runstats-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl
Size 83.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
200297eed4d7f0192eb324d3c634672c9268e2e603f06b372968a849a30c2dfd
BLAKE2b-256 checksum
How to use checksums
eba93b597ec1ee094bb86dc3682cb220befa6818e06c10c17115d8a9bb927ee8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-win_amd64.whl

Download URL runstats-2.0.0-cp36-cp36m-win_amd64.whl
Size 75.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
5fb4f07a3bd665335c9e4f00389585fe98203b3ff32a0e743a1ce728c22855de
BLAKE2b-256 checksum
How to use checksums
5896cb6eb894cc9ce3cdbf4ef10b7a719bc7ab6ec2a875b0ec2d6860d6774cc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-win32.whl

Download URL runstats-2.0.0-cp36-cp36m-win32.whl
Size 66.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
9741af3341f087686db4758e2266f26da36ad44bb49039dee43edc97930ac32e
BLAKE2b-256 checksum
How to use checksums
4c09e156dad5b385a36042d431d06d9836caec9fb65dd032ec2f57c0c925ce52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl

Download URL runstats-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl
Size 351.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
9d645bebdf788ea82c2c921462cce8b5d4bda72192bde511b81816082aca9c25
BLAKE2b-256 checksum
How to use checksums
ec8fcf02f294c74abcbc7378d4a781c279dae5027c1e51b29cd6ba3c952b8bd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-manylinux2010_i686.whl

Download URL runstats-2.0.0-cp36-cp36m-manylinux2010_i686.whl
Size 330.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
748d43cc2712b319e4244c9af275f4d78513e388ff23d14eb36ae30c1e15f2ec
BLAKE2b-256 checksum
How to use checksums
6bf487ff1dc39fd1cd4fbe91599ea06acbd7463e4491d1e11945a12d8abf9ab2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-manylinux1_x86_64.whl

Download URL runstats-2.0.0-cp36-cp36m-manylinux1_x86_64.whl
Size 351.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2ec49f15b276cce89ffddedebe95741136b0e309ed68108c1bf33f7295973143
BLAKE2b-256 checksum
How to use checksums
15c33b99c5cf8e09c20c494f0c02cb3a5d6fe384dfbf5f89dd3f5035dcc323d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-manylinux1_i686.whl

Download URL runstats-2.0.0-cp36-cp36m-manylinux1_i686.whl
Size 330.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
09cf60f075b6e03d39fbcdfd14835d9fca985e78315334e589af4840e45e04f5
BLAKE2b-256 checksum
How to use checksums
093fc6b044b417fc14b4c3bbfc96bd4a73eeb2ba94fa0f81b660dd52bacb8c78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release files / runstats-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl

Download URL runstats-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl
Size 87.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
79efa663eb47eb480d75f12889590646f7f823169dda386c986be03310cfcc34
BLAKE2b-256 checksum
How to use checksums
d598a0874835943b0814c3b7aaaa60cd16ab737613421929bc701a41d2af5be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release history Release notifications | RSS feed

This release

2.0.0 This release

29 release files

1.8.0

1 release file

1.7.1

1 release file

1.6.3

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.4.0

2 release files

1.3.0

1 release file

1.2.2

2 release files

1.2.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.6.0

2 release files

0.5.3

1 release file

0.5.2

1 release file

0.0.1

1 release file

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