Skip to main content

Coniferous forests for better machine learning

Project description

Coniferests

Trying to make a slightly better isolation forest for anomaly detection. At the moment there are two forests:

Isolation forest

This is the reimplementation of scikit-learn's isolation forest. The low-level trees and builders are those of original isoforest. What is basically reimplemented is the score evaluation to provide better efficiency. Compare runs (4-cores Intel Core i5-6300U):

import sklearn.ensemble
import coniferest.isoforest
from coniferest.datasets import MalanchevDataset

# 1e6 data points
dataset = MalanchevDataset(inliers=2**20, outliers=2**6)

# %%time
isoforest = coniferest.isoforest.IsolationForest(n_subsamples=1024)
isoforest.fit(dataset.data)
scores = isoforest.score_samples(dataset.data)
# CPU times: user 16.4 s, sys: 26.1 ms, total: 16.4 s
# Wall time: 5.03 s

# %%time
skforest = sklearn.ensemble.IsolationForest(max_samples=1024)
skforest.fit(dataset.data)
skscores = skforest.score_samples(dataset.data)
# CPU times: user 32.3 s, sys: 4.48 s, total: 36.8 s
# Wall time: 36.8 s

And that's not the largest speedup. The more data we analyze, the more cores we have, the more trees we build -- the larger will be the speedup. At one setup (analyzing 30M objects with 100-dimensional features on 80-core computer) the author has seeen a speedup rate from 24 hours to 1 minute.

The main object of optimization is score evaluation. So if you'd like to test it without using the isolation forest reimplementation, you may use just the evaluator as follows:

# %%time
from coniferest.sklearn.isoforest import IsolationForestEvaluator

isoforest = sklearn.ensemble.IsolationForest(max_samples=1024)
isoforest.fit(dataset.data)
evaluator = IsolationForestEvaluator(isoforest)
scores = evaluator.score_samples(dataset.data)
# CPU times: user 17.1 s, sys: 13.9 ms, total: 17.2 s
# Wall time: 6.32 s

Pine forest

Pine forest is an attempt to make isolation forest capable of applying a bit of prior information. Let's take a data sample:

dataset = MalanchevDataset(inliers=100, outliers=10)
                                Plain data
     ┌───────────────────────────────────────────────────────────────┐
 1.12┤  .           .                                        .       │
     │        .  .         .                        .  .    .  .     │
 0.88┤.   . .        .                                      .      . │
     │   .                                             .             │
     │                                                               │
 0.64┤                                                               │
     │                .     .                                        │
     │         ... ..  .... ... .....                                │
  0.4┤        ....  .. .. .. .    .                                  │
     │          . ...     ..   ... .                                 │
 0.17┤        .  .  ...  ..... .  ..                   .             │
     │         .    .... .  . .. . .                 .  ..           │
     │         .   .      . . . ...                 .     .         .│
-0.07┤                                                       .       │
     │                                                               │
-0.31┤                                               .               │
     └┬──────────────┬───────────────┬───────────────┬──────────────┬┘
     -0.2           0.16            0.53            0.89          1.26

Here we have one bunch of inliers and three bunches of outliers (10 points each). What happens when we use regular isolation forest? (or just PineForest without priors)

pineforest = PineForest(n_subsamples=16)
pineforest.fit(dataset.data)
scores = pineforest.score_samples(dataset.data)
np.argsort(scores)[:10]
                         PineForest without priors
     ┌───────────────────────────────────────────────────────────────┐
 1.12┤  *           .                                        *       │
     │        .  .         .                        .  *    *  *     │
 0.88┤*   . .        .                                      *      * │
     │   .                                             .             │
     │                                                               │
 0.64┤                                                               │
     │                .     .                                        │
     │         ... ..  .... ... .....                                │
  0.4┤        ....  .. .. .. .    .                                  │
     │          . ...     ..   ... .                                 │
 0.17┤        .  .  ...  ..... .  ..                   .             │
     │         .    .... .  . .. . .                 .  ..           │
     │         .   .      . . . ...                 .     .         *│
-0.07┤                                                       .       │
     │                                                               │
-0.31┤                                               .               │
     └┬──────────────┬───────────────┬───────────────┬──────────────┬┘
     -0.2           0.16            0.53            0.89          1.26

PineForest sees the upper corner as the most anomalous with some doubt about two other bunches. Let's now add prior information "the points (0, 1) and (1, 1) are regular and the point (1, 0) is anomalous":

priors = np.array([[0.0, 1.0],
                   [1.0, 1.0],
                   [1.0, 0.0]])

prior_labels = np.array([Label.R, Label.R, Label.A])

And see what happens:

pineforest.fit_known(dataset.data, priors, prior_labels)
scores = pineforest.score_samples(dataset.data)
np.argsort(scores)[:10]
                         PineForest with 3 priors
     ┌───────────────────────────────────────────────────────────────┐
 1.12┤  .           .                                        .       │
     │        .  .         .                        .  .    .  *     │
 0.88┤.   . .        .                                      .      * │
     │   .                                             .             │
     │                                                               │
 0.64┤                                                               │
     │                .     .                                        │
     │         ... ..  .... ... .....                                │
  0.4┤        ....  .. .. .. .    .                                  │
     │          . ...     ..   ... .                                 │
 0.17┤        .  .  ...  ..... .  ..                   .             │
     │         .    .... .  . .. . .                 *  **           │
     │         .   .      . . . ...                 *     *         *│
-0.07┤                                                       *       │
     │                                                               │
-0.31┤                                               *               │
     └┬──────────────┬───────────────┬───────────────┬──────────────┬┘
     -0.2           0.16            0.53            0.89          1.26

Now the PineForest sees the lower right outliers as anomalous and still has some doubts about upper right bunch. We may supply more labeled points. And the more prior data we supply the better anomaly detection will be, hopefully.

The plots may be repeated with plotext_pineforest.py script:

cd scripts
python plotext_pineforest.py

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

coniferest-0.0.8.tar.gz (19.3 MB view details)

Uploaded Source

Built Distributions

coniferest-0.0.8-cp311-cp311-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.11 Windows x86-64

coniferest-0.0.8-cp311-cp311-win32.whl (9.0 MB view details)

Uploaded CPython 3.11 Windows x86

coniferest-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

coniferest-0.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

coniferest-0.0.8-cp311-cp311-macosx_11_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

coniferest-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

coniferest-0.0.8-cp310-cp310-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

coniferest-0.0.8-cp310-cp310-win32.whl (9.0 MB view details)

Uploaded CPython 3.10 Windows x86

coniferest-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

coniferest-0.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

coniferest-0.0.8-cp310-cp310-macosx_11_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

coniferest-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

coniferest-0.0.8-cp39-cp39-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

coniferest-0.0.8-cp39-cp39-win32.whl (9.0 MB view details)

Uploaded CPython 3.9 Windows x86

coniferest-0.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

coniferest-0.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

coniferest-0.0.8-cp39-cp39-macosx_11_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

coniferest-0.0.8-cp39-cp39-macosx_10_9_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

coniferest-0.0.8-cp38-cp38-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.8 Windows x86-64

coniferest-0.0.8-cp38-cp38-win32.whl (9.1 MB view details)

Uploaded CPython 3.8 Windows x86

coniferest-0.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

coniferest-0.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

coniferest-0.0.8-cp38-cp38-macosx_11_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

coniferest-0.0.8-cp38-cp38-macosx_10_9_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

coniferest-0.0.8-cp37-cp37m-win_amd64.whl (9.1 MB view details)

Uploaded CPython 3.7m Windows x86-64

coniferest-0.0.8-cp37-cp37m-win32.whl (9.1 MB view details)

Uploaded CPython 3.7m Windows x86

coniferest-0.0.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.6 MB view details)

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

coniferest-0.0.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

coniferest-0.0.8-cp37-cp37m-macosx_10_9_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file coniferest-0.0.8.tar.gz.

File metadata

  • Download URL: coniferest-0.0.8.tar.gz
  • Upload date:
  • Size: 19.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8.tar.gz
Algorithm Hash digest
SHA256 0c398ca9fa5b27c8a8bd898011b94ec60c8f4460430f3439e9fbb40edbc9775c
MD5 09d7022d7815921d9e742ce1d5849e8c
BLAKE2b-256 569a160ce7863ff01224616d78ce00e9c6559b811bf041f102edf824556d3bea

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4bd32183896fe3d3514e60a5e20f3f5b59ae310f8e62c8e6948507a2fe7a14bf
MD5 4321ace3d524f94d825b8b17e0bbb5af
BLAKE2b-256 43fca95c7bb605cac90e4bf49d8cd9244a7fafbb4563070eccd97c3c697fb18e

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-win32.whl.

File metadata

  • Download URL: coniferest-0.0.8-cp311-cp311-win32.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c88a06cb549f809d31614ea39bf79ef41f81c089bce01fb32a9da1fc7ac4db60
MD5 61197d98f2fd305bc6744204632ae1e2
BLAKE2b-256 1919f852551dbb29b6fcc455437cfc5f2c21aa6965238dc93fec44691ad73147

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5f7965882fed2c08aad74120c2857c6dd3680def24eeaa91473ee4972abda99
MD5 bb6e8c715de543786f176dc5fdcaecf5
BLAKE2b-256 9e41a6f465448caf70b08c2b3409a076466dfdf8fad3abec4e77e6ff4a38c941

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89098ddb7290af51652aa953e3203ba5be89a3ee1a913682f7d7dc8688f2fd14
MD5 7060ba643f72f502cc79b0e13574a574
BLAKE2b-256 1cd3cfa510f91ad7db9f0b65df73bc648802cb27d50e95ae620b7efddd164004

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8d51099a0f2a5e1498c67c9f6ef88e2bbc3685658a134c6b68fc1ff39bb6db1
MD5 bb529d829c23e68455f74f9445b65d39
BLAKE2b-256 fc3001846c802b0cf12072626e34d2ab14195fdc0f644d9682e25ce5b63ffe3e

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 accba85a2f6a4bb48b61b79f05b340fb9be6d8ef4ce6a068e5d9fd3e650fe59f
MD5 bc5463175568430e925ef736e90ceb8a
BLAKE2b-256 b7afe33acf55889a04faf27ac0b7b334e6318d076e0f4676d25c9a237f448266

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5a9dc6785710d15c37c5b621edfe08bef453ac3b8e4e249bf602042a09e6667f
MD5 ed836163862e8217435db1b49b43b814
BLAKE2b-256 cff7545abdd339b18cbb5de0c3a9f65b87b65c84932e8cab2201f31210e031c8

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-win32.whl.

File metadata

  • Download URL: coniferest-0.0.8-cp310-cp310-win32.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 88a041016720bcad3fbbd9bb9c6f4461091aac289ba09fd81f1205ceaf0ee889
MD5 d37a97f267f47cb7b8c5dae6d5360f7d
BLAKE2b-256 af6020b43030c05c311ea38a7df473e6bbfaf8a8cbb2175763b8d9d6ee10079f

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0bceba505432b79117c38b426712186296225d405de3fd2b5508767a93cec937
MD5 cc9769a783a6134feacb1e1a8801abe0
BLAKE2b-256 c2873aca01833c5b5d798d95c813f3c6c4812a58bfb58075a013e4aeb931c93f

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dbc5eb8a928dff0953674f6674196578ac1ba2c436b7166e0ee35fbba761c6d1
MD5 058889d84265508e3f81b027a968ce95
BLAKE2b-256 83661d4206f316ea1d2369671ee8ca841d9fbc0297bce27e28775910a90fc228

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b844c368b6a93333ad563948b033ef7d0103c42f2275528a663be595da05e51
MD5 384e438ed7525d3bbc9a444cb7dd44ac
BLAKE2b-256 2a39c4276ecc95855912f8ba24187d6776a0fd76e0080ef4b511e4e3cdab7f69

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 359b94402d4a9f086124028f58f161dd7e082cb078039959116544505e6684f5
MD5 aebcc6f975118fe139be4ce86da4cce0
BLAKE2b-256 f1d8242ed1b2e78aa3b41e5b3d9d93a529ef65b4f914939978daf6a4389cdd21

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b5ea08152e9a5b6b4eae005b11e1b62c0a0801889768de672d46f3f4e1913a20
MD5 55e82c0c8f22de401e21090613e1ab73
BLAKE2b-256 9d714a19d7cb150e266aef5f9d01d5ce0ade7c1f5588593186a9230d2d56586f

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-win32.whl.

File metadata

  • Download URL: coniferest-0.0.8-cp39-cp39-win32.whl
  • Upload date:
  • Size: 9.0 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 6bd7ee99f5fdefb28ec1e24e07681d0174cab4b8cc1511fc6eecb3c7c6d17cfb
MD5 c7e7fb4f07a9e847a7ff1e546674b942
BLAKE2b-256 20fd25aa5f268fecb0d328f16a56d67d2195d21be09bab8fcec11a26381311fa

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd54066ab0f70d5a4ee6cc60dd84c8cf7bbd6d791ab9a553fdb753c6bfd08a12
MD5 a979351de9764a2ec01d98387d2f97ed
BLAKE2b-256 44690e3216adb88aee53748797ddd31a5dd872113a15dfbe98908ac7b221c3d5

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15b4a891223b40d3d70833353022e6b4cc8b6e8d9ba47740e60e1f5b66a277dc
MD5 8e4aba14c618ee601e1ec0dd903aa014
BLAKE2b-256 7ee9224172b7d5495b4546ec7ad6e99064cda8e66c8ffbe186074d5b9590e406

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 53bb4c6156b87c726ce1971d0441bd9874dac3e48c798de792c7e4e3d962d4e3
MD5 a4f1cd4fe7dfc5878830220cb96f5585
BLAKE2b-256 13ee334f73a7472d1118a71adf33c39e9b7cf111ee3221ddbe3a673f0f28fdf4

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 96bb21c9f1383bb6e6e710e0976e5b44e2bdef439bbf6dffdfb929ce6e0d8210
MD5 1381b1b4bf5dc6588c768f9acfbbd22a
BLAKE2b-256 0723bd9655e101e7f53d017aceb890999e24833811c3d43b13da56fd1cd86b06

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1873ea7eff1e5ae2502c16914214693cc3257171658b17bb05f3c40756260e1f
MD5 10dac4662ecfeb3e68cc11829eba4fe0
BLAKE2b-256 4a8871c5b94ff36731d9644bec566e90a20e14c1fca428b96b16b84d2a24eac1

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-win32.whl.

File metadata

  • Download URL: coniferest-0.0.8-cp38-cp38-win32.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 0fa89311185ee444db9e787d9ad2d20ad45bbc89c4669e2338704a7e49242cdd
MD5 22cd2c7a2c1ceb66981536a9d1890a6e
BLAKE2b-256 f82f268287e1f7171cea297521e70fc553f82ccc4589e968dc46280e88968405

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cf6bc1908ea949bce39567d2803b94b310edda5c8aba570cfb55bb240005555
MD5 f67700006d998ddc93846cbaaff04092
BLAKE2b-256 4ca7de5229fbb8eeba5f82ca1c7afa830f8e269e07ba4099d8ca5dfef0888a9b

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 16ff108263eee6fe017bd2ca3beccc0fef5e523a6180bd94ca8274f4b74a655c
MD5 e8ad2ed52e6aa2648d33160d8fd66bdb
BLAKE2b-256 875f3a0b3c97c38a6d165e21d7f84e3d1649aadd55a94baa11979c63d58b749e

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04991866a5e3bf4857a211574b35401d101b0e7d920d08a3a3a6cd2e2e67fd04
MD5 810bdd48dbad8ee4e627f284eaeadcc9
BLAKE2b-256 514cb6d386ed3b73d7511db630bf6dd85d6efd5bb04aa6ad2675ec29d30384c0

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 280dbe624c01053a6f7bea1948e556084b94da390acc96638e915bd50faad735
MD5 e01656a3308353b536c8352f12c8b273
BLAKE2b-256 175cf244183bbba7aff06c2c6f147bf64776bbb23acfcdaf1dac74f868b9328b

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1fe71111dee1b873fc59752117465b96fb9becd048d1868b821a53ae94303515
MD5 a268c15402b25e6a1ab56ecf92c9fd15
BLAKE2b-256 14dbbab38bae3585b994cf6f9882b0c160a9fbb376e30fda56f3487cad90311f

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp37-cp37m-win32.whl.

File metadata

  • Download URL: coniferest-0.0.8-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for coniferest-0.0.8-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 823f722d9e97d5953cf1dfddcd9669b8846010ccaedc1cd45f8615d7661cabfc
MD5 3616b62bf061844672711792359da822
BLAKE2b-256 8eeb69169fbc7d39502f9224ac43b1b424df14a4ca6a0bceb708de5624233016

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef149b7fe7f2e48b6e08aa2bb67b7a6c0e2ac8cf6f9b32d1db0fbb1ae5254bc7
MD5 83740febbbd6ea7af8202e86d519c0fb
BLAKE2b-256 548215b627421de50f2a6b220b40e74ef984524e6ae736e60cdcdc2ebfb8986f

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 749d2dc1cdd943480c12a1fb39b93154a50968977cd5a2cb2693b21bc415337e
MD5 c96d2465fa1cbeb04a06a843dded2ead
BLAKE2b-256 62ea6bea311a25f8f6bd0cfb3e762d03931dada33c656dfba95baea83e5831cf

See more details on using hashes here.

File details

Details for the file coniferest-0.0.8-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for coniferest-0.0.8-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 92ee5581d6c4eaf04060dcbad878b5731ccfbda2192a13c169174f46866cb643
MD5 e464041b4fcd66acf7b25e3dfa3d3589
BLAKE2b-256 c58f2fa1b8921ea5ae973da34e09c5026246591330a149be5918f83a9f303a8a

See more details on using hashes here.

Supported by

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