Random Forests for Change Point Detection
Project description
Random Forests for Change Point Detection
Change point detection aims to identify structural breaks in the probability distribution of a time series. Existing methods either assume a parametric model for within-segment distributions or are based on ranks or distances and thus fail in scenarios with a reasonably large dimensionality.
changeforest
implements a classifier-based algorithm that consistently estimates
change points without any parametric assumptions, even in high-dimensional scenarios.
It uses the out-of-bag probability predictions of a random forest to construct a
classifier log-likelihood ratio that gets optimized using a computationally feasible two-step
method.
See [1] for details.
Installation
To install from conda-forge
(recommended), run
conda install -c conda-forge changeforest
To install from PyPI
, run
pip install changeforest
Example
In the following example, we perform random forest-based change point detection on
a simulated dataset with n=600
observations and covariance shifts at t=200, 400
.
In [1]: import numpy as np
...:
...: Sigma = np.full((5, 5), 0.7)
...: np.fill_diagonal(Sigma, 1)
...:
...: rng = np.random.default_rng(12)
...: X = np.concatenate(
...: (
...: rng.normal(0, 1, (200, 5)),
...: rng.multivariate_normal(np.zeros(5), Sigma, 200, method="cholesky"),
...: rng.normal(0, 1, (200, 5)),
...: ),
...: axis=0,
...: )
The simulated dataset X
coincides with the change in covariance (CIC) setup
described in [1]. Observations in the first and last segments are independently drawn
from a standard multivariate Gaussian distribution. Observations in the second segment
are i.i.d. normal with mean zero and unit variance, but with a covariance of ρ = 0.7
between coordinates. This is a challenging scenario.
In [2]: from changeforest import changeforest
...:
...: result = changeforest(X, "random_forest", "bs")
...: result
Out[2]:
best_split max_gain p_value
(0, 600] 400 14.814 0.005
¦--(0, 400] 200 59.314 0.005
¦ ¦--(0, 200] 6 -1.95 0.67
¦ °--(200, 400] 393 -8.668 0.81
°--(400, 600] 412 -9.047 0.66
In [3]: result.split_points()
Out[3]: [200, 400]
changeforest
correctly identifies the change points at t=200
and t=400
. The
changeforest
function returns a BinarySegmentationResult
. We use its plot
method
to investigate the gain curves maximized by the change point estimates:
In [4]: result.plot().show()
Change point estimates are marked in red.
For method="random_forest"
and method="knn"
, the changeforest
algorithm uses a two-step approach to
find an optimizer of the gain. This fits a classifier for three split candidates
at the segment's 1/4, 1/2 and 3/4 quantiles, computes approximate gain curves using
the resulting classifier log-likelihood ratios and selects the overall optimizer as a second guess.
We can investigate the gain curves from the optimizer using the plot
method of OptimizerResult
.
The initial guesses are marked in blue.
In [5]: result.optimizer_result.plot().show()
One can observe that the approximate gain curves are piecewise linear, with maxima around the true underlying change points.
The BinarySegmentationResult
returned by changeforest
is a tree-like object with attributes
start
, stop
, best_split
, max_gain
, p_value
, is_significant
, optimizer_result
, model_selection_result
, left
, right
and segments
.
These can be interesting to investigate the output of the algorithm further.
The changeforest
algorithm can be tuned with hyperparameters. See
here
for their descriptions and default values. In Python, the parameters can
be specified with the Control
class,
which can be passed to changeforest
. The following will build random forests with
50 trees:
In [6]: from changeforest import Control
...: changeforest(X, "random_forest", "bs", Control(random_forest_n_estimators=50))
Out[6]:
best_split max_gain p_value
(0, 600] 416 7.463 0.01
¦--(0, 416] 200 43.935 0.005
¦ ¦--(0, 200] 193 -14.993 0.945
¦ °--(200, 416] 217 -9.13 0.085
°--(416, 600] 591 -12.07 1
The changeforest
algorithm still detects change points at t=200
, but is slightly off
with t=416
.
Due to the nature of the change, method="change_in_mean"
is unable to detect any
change points at all:
In [7]: changeforest(X, "change_in_mean", "bs")
Out[7]:
best_split max_gain p_value
(0, 600] 589 8.625
References
[1] M. Londschien, P. Bühlmann and S. Kovács (2023). "Random Forests for Change Point Detection" Journal of Machine Learning Research
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file changeforest-1.1.4.tar.gz
.
File metadata
- Download URL: changeforest-1.1.4.tar.gz
- Upload date:
- Size: 368.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b07f7da19e613ba04e613618e80e1cee4c2017f2c1f662f35cc59504f6669136 |
|
MD5 | 6c16d13ca56d9af1d2c0f5cb6f64fa6b |
|
BLAKE2b-256 | 67afebca11be1424948e04d5c912b1b22512d7df59c2ed696a1b7b2140e919a3 |
File details
Details for the file changeforest-1.1.4-cp312-none-win_amd64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp312-none-win_amd64.whl
- Upload date:
- Size: 319.3 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af777c2db071600c12570598f38f1cd799ca0bca3f62ac3bf666410449b6ca0f |
|
MD5 | b445d72b5dcb0c05da802116bb49fa9e |
|
BLAKE2b-256 | 631f565eac9fb7a77a69732a15f683cf8a07721e2740899214ae5c944d889dd5 |
File details
Details for the file changeforest-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36dbae651a1b49279d14fd114e7772dcd85c46af9d86ee12dfb69f9282a1fe45 |
|
MD5 | 446e8f301945640d6b276683d095e4ce |
|
BLAKE2b-256 | 4cec318518bbc64c2b843b428c145e271477c59cd5769a84d0b9416a838fcbba |
File details
Details for the file changeforest-1.1.4-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 471.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 676a549e6478dd646a736baa6aa7207d37c86ae058bf13c3a916c598ec052680 |
|
MD5 | af5fae3daa3eba00179b709d038c89f1 |
|
BLAKE2b-256 | 17d7112f73a11fd4285866959d26240c4a97370d020c2b9633d6fe1b840356b0 |
File details
Details for the file changeforest-1.1.4-cp312-cp312-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 481.3 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01c2de3ce7e38660a6e3259123db9fe52d9455b874e493449780ff6a095fcdc2 |
|
MD5 | 05c4caa1d17c5eb7ef4a1fb184f609d8 |
|
BLAKE2b-256 | a7da86525aa0bce0570fc6c2e854ec589661264801c61b798ebd0df3c7f862d9 |
File details
Details for the file changeforest-1.1.4-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 946.1 kB
- Tags: CPython 3.12, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 298d4d3162ace6b78f1c43dfafff47f7e11c0f6c3e64e896645c631909863e4e |
|
MD5 | 39af36726a4e210ab5b863b0222e1235 |
|
BLAKE2b-256 | 39f6452c880ad871cb1502394ae3429fd6b05b13f07ef7f794eabdca4400b241 |
File details
Details for the file changeforest-1.1.4-cp311-none-win_amd64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp311-none-win_amd64.whl
- Upload date:
- Size: 318.9 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20ab022f50110220b9a0af440b2d712818886f4af335244fa305ef4e9cccc3c8 |
|
MD5 | 4cc643c629c82a229dd6c08bb24691e2 |
|
BLAKE2b-256 | faa9cb30593670cbdc83f72c20210b8dafed60533d42afab8abe82e9d11c4bb0 |
File details
Details for the file changeforest-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eb2c6ec1cc939414a7e970abb38bab933380f14840836e7a842935c568f7be8 |
|
MD5 | 6d70ce9564614445e643893ab73f98f3 |
|
BLAKE2b-256 | b4e0b91db1aa7ae4d3765c6961fd8c09bac065953392ff5204407c8335d0c25d |
File details
Details for the file changeforest-1.1.4-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 471.8 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b108310e83c891a7651b556e101a3b0e7b1c5d99d755f202058f78268a84e4cf |
|
MD5 | fbd38f3b084c3ebd5632a29a569e596e |
|
BLAKE2b-256 | 70d4c0ec9385faa252dde3ae6c80962d30a6e26240b96c626587ffc885a261aa |
File details
Details for the file changeforest-1.1.4-cp311-cp311-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 482.4 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d37fb8e6441ffc47e5f1e6f18b2c971794a9684690a1ea7db6fc93989f561d57 |
|
MD5 | 6418998599149ce5db6d9b9598997a2a |
|
BLAKE2b-256 | c4666a372ef93ebcbac85462609fd075e5141b6d2a8ef8c2560b91ebe1a1f51e |
File details
Details for the file changeforest-1.1.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 947.8 kB
- Tags: CPython 3.11, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 579dd0f39bf8dd4be20ce62ac79717566e01113c187ab64cca1d383ce617f49d |
|
MD5 | 8b483a376661e94343879a5358aa426b |
|
BLAKE2b-256 | 02044304496938a86665eff52389328cbce2d945989c2872be9e377d422be6c6 |
File details
Details for the file changeforest-1.1.4-cp310-none-win_amd64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp310-none-win_amd64.whl
- Upload date:
- Size: 319.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14af748c5ed90d0fd3ef5010d5294181ab4cf712811fe5ec8e41d3a86c1c4f8f |
|
MD5 | 4b7ece63689b1a1cde0b0ceca1c7735c |
|
BLAKE2b-256 | 751f0f0547e0485384cbf7f051965f12a354ed7d72ae47a2739d5d85428726fd |
File details
Details for the file changeforest-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47710f01b83c81aa706acd13ce726ff0775e09ce1903a0cfd221d57c423e626f |
|
MD5 | 35fa5001a02a84f5e13276437136feed |
|
BLAKE2b-256 | 330c1eefc962bcd3f082c754265524d7d3b9e8d9839ba4c3ff335ab7ba67deba |
File details
Details for the file changeforest-1.1.4-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 471.8 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3ee3a4c66e752e20d7aea9a5160f46884bb61f200a6079c76e988f07099d161 |
|
MD5 | 40e7c98487f4fe68d4762084d027b455 |
|
BLAKE2b-256 | d76de941363cf7f1a3bd9419383cd1bc0940a7f908f95c8cdb70938f35022ada |
File details
Details for the file changeforest-1.1.4-cp310-cp310-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 482.5 kB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a29df97759b6f0bea2292155e01d730caa4769ffbc530b9dcefc1bf8d97650c6 |
|
MD5 | 7ac541a90988315f7693f10e8843cbef |
|
BLAKE2b-256 | 07db518f9f8fb6215d06092c03ac3d43baa15fd652d1ed7eda709fe61c718d7c |
File details
Details for the file changeforest-1.1.4-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 947.9 kB
- Tags: CPython 3.10, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c265fdba8dbbb1485d7cf5e35ffbfed34c30d3945a50669a33b3ff3276557ffb |
|
MD5 | 22d0e11994458bbb6c31ae99a60775df |
|
BLAKE2b-256 | 820b70c92e5ba24fa2ac1ed8f921f8cee247c4f27b2342ca51382a86fe6b1c5c |
File details
Details for the file changeforest-1.1.4-cp39-none-win_amd64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp39-none-win_amd64.whl
- Upload date:
- Size: 319.9 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0744fe70da1e1e762f0c95e840fb90627979f20c9d84ac35541b201526465d3 |
|
MD5 | a141c27d819ea1083ee6504662af8fd4 |
|
BLAKE2b-256 | 8c1bc411b5a0527b1a2b87463db43a889221836577014af8261f1c190e0c3c6c |
File details
Details for the file changeforest-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89aa6677a46857b0a2ea17e7157d6132fabfd9f1fb9e808237461184423524dd |
|
MD5 | 9f43860dda22e2f0b86e955661ecef10 |
|
BLAKE2b-256 | 85eab84cba0f52b1b063c7d77002085f3bf0d0a8c65fc548e65bacbe819d9f6a |
File details
Details for the file changeforest-1.1.4-cp39-cp39-macosx_11_0_arm64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 471.9 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67ec593535c4558253c9e3987094460a567ac079b4a49a6151fc7c4def326ea0 |
|
MD5 | ef9a8b00cbb6f08447900356482de273 |
|
BLAKE2b-256 | 9b7418f441221a0712f56f6ee112d6492a6d6205172a685961ee68ae0a782d4f |
File details
Details for the file changeforest-1.1.4-cp39-cp39-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp39-cp39-macosx_10_12_x86_64.whl
- Upload date:
- Size: 482.7 kB
- Tags: CPython 3.9, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53825c4364648f53fa1eb18aa86c54a103c45550632bd8d3eb758b54d5ba7e78 |
|
MD5 | 2de7bbcb1ced94081ec301b4f4aaba8d |
|
BLAKE2b-256 | 5246237de387012fa0b67ab82dcd6e18b889182362c9c8c14065a0866f954ab5 |
File details
Details for the file changeforest-1.1.4-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 947.6 kB
- Tags: CPython 3.9, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a8468bc94f5528e820f9032242b393ab0cba3b84f8a45ece7635e2395345dea |
|
MD5 | 007c9fe077532887a8026713c2c3c508 |
|
BLAKE2b-256 | 329416c6a4358a8c37ae6178ebdb5a4f6c1db6cc7e0246f488825c426ee98d67 |
File details
Details for the file changeforest-1.1.4-cp38-none-win_amd64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp38-none-win_amd64.whl
- Upload date:
- Size: 319.2 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae338a6cca77a449c3b1f60f9a96298e68e7072ee0bcd13fde368c170696bfe1 |
|
MD5 | 297877a82f5f3c36bc070f5d95609b37 |
|
BLAKE2b-256 | a26ab0385cf3f4b38c278d38c1243e8bdffc242230321e31a60a2385ac34c6d7 |
File details
Details for the file changeforest-1.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3035c9adce8313ace53b1905139ff0bdcdf382b6da1206555e7fe84f487aece8 |
|
MD5 | 63931c598b5714b6bc0837879e834c9d |
|
BLAKE2b-256 | 05afa1de461f41974350212c6b400f0e092ac43e9a948411b70690493a09c34b |
File details
Details for the file changeforest-1.1.4-cp38-cp38-macosx_11_0_arm64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 472.1 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e85751b79ce34df8fb40ec93221f0b085b7c215c1b0fabf2b6872d284af5bffd |
|
MD5 | 29f6cef4fed8cd524ab01994115bd8d8 |
|
BLAKE2b-256 | 236719769dc91333a5012f9365d106dbd2ae207b0513227a47c5eb1597948f21 |
File details
Details for the file changeforest-1.1.4-cp38-cp38-macosx_10_12_x86_64.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp38-cp38-macosx_10_12_x86_64.whl
- Upload date:
- Size: 482.9 kB
- Tags: CPython 3.8, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e74ec4026e77b0d87f1bca3fc70f11cd412858a82582934f2ca3fa9f6afbc0df |
|
MD5 | d42424e77c0c4038454e01c1f710acc0 |
|
BLAKE2b-256 | e9a63af0b822f6a585a1be82c6bf8f34a560c4e3dbddf5c8fec56427d11f855f |
File details
Details for the file changeforest-1.1.4-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
.
File metadata
- Download URL: changeforest-1.1.4-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 948.1 kB
- Tags: CPython 3.8, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3da834b7f9216a26b86f6ae62c01a3ce2ebeb47aa95f14d98a0866e989a0c6e6 |
|
MD5 | f009f14183baea5984f59e55b09ee398 |
|
BLAKE2b-256 | 0c20eda2c277db554d7335dc3316595a0aa2d1fda7717021e2e62ff171d76856 |