Skip to main content

Python binding to Omikuji, an efficient implementation of Partioned Label Trees and its variations for extreme multi-label classification

Project description

Omikuji

Build Status Crate version PyPI version

An efficient implementation of Partitioned Label Trees (Prabhu et al., 2018) and its variations for extreme multi-label classification, written in Rust🦀 with love💖.

Features & Performance

Omikuji has has been tested on datasets from the Extreme Classification Repository. All tests below are run on a quad-core Intel® Core™ i7-6700 CPU, and we allowed as many cores to be utilized as possible. We measured training time, and calculated precisions at 1, 3, and 5. (Note that, due to randomness, results might vary from run to run, especially for smaller datasets.)

Parabel, better parallelized

Omikuji provides a more parallelized implementation of Parabel (Prabhu et al., 2018) that trains faster when more CPU cores are available. Compared to the original implementation written in C++, which can only utilize the same number of CPU cores as the number of trees (3 by default), Omikuji maintains the same level of precision but trains 1.3x to 1.7x faster on our quad-core machine. Further speed-up is possible if more CPU cores are available.

Dataset Metric Parabel Omikuji
(balanced,
cluster.k=2)
EURLex-4K P@1 82.2 82.1
P@3 68.8 68.8
P@5 57.6 57.7
Train Time 18s 14s
Amazon-670K P@1 44.9 44.8
P@3 39.8 39.8
P@5 36.0 36.0
Train Time 404s 234s
WikiLSHTC-325K P@1 65.0 64.8
P@3 43.2 43.1
P@5 32.0 32.1
Train Time 959s 659s

Regular k-means for shallow trees

Following Bonsai (Khandagale et al., 2019), Omikuji supports using regular k-means instead of balanced 2-means clustering for tree construction, which results in wider, shallower and unbalanced trees that train slower but have better precision. Comparing to the original Bonsai implementation, Omikuji also achieves the same precisions while training 2.6x to 4.6x faster on our quad-core machine. (Similarly, further speed-up is possible if more CPU cores are available.)

Dataset Metric Bonsai Omikuji
(unbalanced,
cluster.k=100,
max_depth=3)
EURLex-4K P@1 82.8 83.0
P@3 69.4 69.5
P@5 58.1 58.3
Train Time 87s 19s
Amazon-670K P@1 45.5* 45.6
P@3 40.3* 40.4
P@5 36.5* 36.6
Train Time 5,759s 1,753s
WikiLSHTC-325K P@1 66.6* 66.6
P@3 44.5* 44.4
P@5 33.0* 33.0
Train Time 11,156s 4,259s

*Precision numbers as reported in the paper; our machine doesn't have enough memory to run the full prediction with their implementation.

Balanced k-means for balanced shallow trees

Sometimes it's desirable to have shallow and wide trees that are also balanced, in which case Omikuji supports the balanced k-means algorithm used by HOMER (Tsoumakas et al., 2008) for clustering as well.

Dataset Metric Omikuji
(balanced,
cluster.k=100)
EURLex-4K P@1 82.1
P@3 69.4
P@5 58.1
Train Time 19s
Amazon-670K P@1 45.4
P@3 40.3
P@5 36.5
Train Time 1,153s
WikiLSHTC-325K P@1 65.6
P@3 43.6
P@5 32.5
Train Time 3,028s

Layer collapsing for balanced shallow trees

An alternative way for building balanced, shallow and wide trees is to collapse adjacent layers, similar to the tree compression step used in AttentionXML (You et al., 2019): intermediate layers are removed, and their children replace them as the children of their parents. For example, with balanced 2-means clustering, if we collapse 5 layers after each layer, we can increase the tree arity from 2 to 2⁵⁺¹ = 64.

Dataset Metric Omikuji
(balanced,
cluster.k=2,
collapse 5 layers)
EURLex-4K P@1 82.4
P@3 69.3
P@5 58.0
Train Time 16s
Amazon-670K P@1 45.3
P@3 40.2
P@5 36.4
Train Time 460s
WikiLSHTC-325K P@1 64.9
P@3 43.3
P@5 32.3
Train Time 1,649s

Build & Install

Omikuji can be easily built & installed with Cargo as a CLI app:

cargo install omikuji --features cli

Or install from the latest source:

cargo install --git https://github.com/tomtung/omikuji.git --features cli

The CLI app will be available as omikuji. For example, to reproduce the results on the EURLex-4K dataset:

omikuji train eurlex_train.txt --model_path ./model
omikuji test ./model eurlex_test.txt --out_path predictions.txt

Python Binding

A simple Python binding is also available for training and prediction. It can be install via pip:

pip install omikuji

Note that you might still need to install Cargo should compilation become necessary.

You can also install from the latest source:

pip install git+https://github.com/tomtung/omikuji.git -v

The following script demonstrates how to use the Python binding to train a model and make predictions:

import omikuji

# Train
hyper_param = omikuji.Model.default_hyper_param()
# Adjust hyper-parameters as needed
hyper_param.n_trees = 5
model = omikuji.Model.train_on_data("./eurlex_train.txt", hyper_param)

# Serialize & de-serialize
model.save("./model")
model = omikuji.Model.load("./model")
# Optionally densify model weights to trade off between prediction speed and memory usage
model.densify_weights(0.05)

# Predict
feature_value_pairs = [
    (0, 0.101468),
    (1, 0.554374),
    (2, 0.235760),
    (3, 0.065255),
    (8, 0.152305),
    (10, 0.155051),
    # ...
]
label_score_pairs =  model.predict(feature_value_pairs)

Usage

$ omikuji train --help
omikuji-train
Train a new model

USAGE:
    omikuji train [FLAGS] [OPTIONS] <TRAINING_DATA_PATH>

FLAGS:
        --cluster.unbalanced     Perform regular k-means clustering instead of balanced k-means clustering
    -h, --help                   Prints help information
        --tree_structure_only    Build the trees without training classifiers; useful when a downstream user needs the
                                 tree structures only
    -V, --version                Prints version information

OPTIONS:
        --centroid_threshold <THRESHOLD>         Threshold for pruning label centroid vectors [default: 0]
        --cluster.eps <EPS>                      Epsilon value for determining clustering convergence [default: 0.0001]
        --cluster.k <K>                          Number of clusters [default: 2]
        --cluster.min_size <SIZE>
            Labels in clusters with sizes smaller than this threshold are reassigned to other clusters instead [default:
            2]
        --collapse_every_n_layers <N>
            Number of adjacent layers to collapse, which increases tree arity and decreases tree depth [default: 0]

        --linear.c <C>                           Cost co-efficient for regularizing linear classifiers [default: 1]
        --linear.eps <EPS>
            Epsilon value for determining linear classifier convergence [default: 0.1]

        --linear.loss <LOSS>
            Loss function used by linear classifiers [default: hinge]  [possible values: hinge, log]

        --linear.max_iter <M>
            Max number of iterations for training each linear classifier [default: 20]

        --linear.weight_threshold <THRESHOLD>
            Threshold for pruning weight vectors of linear classifiers [default: 0.1]

        --max_depth <DEPTH>                      Maximum tree depth [default: 20]
        --min_branch_size <SIZE>
            Number of labels below which no further clustering & branching is done [default: 100]

        --model_path <PATH>
            Optional path of the directory where the trained model will be saved if provided; if an model with
            compatible settings is already saved in the given directory, the newly trained trees will be added to the
            existing model
        --n_threads <T>
            Number of worker threads. If 0, the number is selected automatically [default: 0]

        --n_trees <N>                            Number of trees [default: 3]

ARGS:
    <TRAINING_DATA_PATH>    Path to training dataset file (in the format of the Extreme Classification Repository)
$ omikuji test --help
omikuji-test
Test an existing model

USAGE:
    omikuji test [OPTIONS] <MODEL_PATH> <TEST_DATA_PATH>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --beam_size <beam_size>           Beam size for beam search [default: 10]
        --k_top <K>                       Number of top predictions to write out for each test example [default: 5]
        --max_sparse_density <DENSITY>    Density threshold above which sparse weight vectors are converted to dense
                                          format. Lower values speed up prediction at the cost of more memory usage
                                          [default: 0.1]
        --n_threads <T>                   Number of worker threads. If 0, the number is selected automatically [default:
                                          0]
        --out_path <PATH>                 Path to the which predictions will be written, if provided

ARGS:
    <MODEL_PATH>        Path of the directory where the trained model is saved
    <TEST_DATA_PATH>    Path to test dataset file (in the format of the Extreme Classification Repository)

Data format

Our implementation takes dataset files formatted as those provided in the Extreme Classification Repository. A data file starts with a header line with three space-separated integers: total number of examples, number of features, and number of labels. Following the header line, there is one line per each example, starting with comma-separated labels, followed by space-separated feature:value pairs:

label1,label2,...labelk ft1:ft1_val ft2:ft2_val ft3:ft3_val .. ftd:ftd_val

Trivia

The project name comes from o-mikuji (御神籤), which are predictions about one's future written on strips of paper (labels?) at jinjas and temples in Japan, often tied to branches of pine trees after they are read.

References

  • Y. Prabhu, A. Kag, S. Harsola, R. Agrawal, and M. Varma, “Parabel: Partitioned Label Trees for Extreme Classification with Application to Dynamic Search Advertising,” in Proceedings of the 2018 World Wide Web Conference, 2018, pp. 993–1002.
  • S. Khandagale, H. Xiao, and R. Babbar, “Bonsai - Diverse and Shallow Trees for Extreme Multi-label Classification,” Apr. 2019.
  • G. Tsoumakas, I. Katakis, and I. Vlahavas, “Effective and efficient multilabel classification in domains with large number of labels,” ECML, 2008.
  • R. You, S. Dai, Z. Zhang, H. Mamitsuka, and S. Zhu, “AttentionXML: Extreme Multi-Label Text Classification with Multi-Label Attention Based Recurrent Neural Networks,” Jun. 2019.

License

Omikuji is licensed under the MIT License.

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

omikuji-0.2.0.tar.gz (47.4 kB view details)

Uploaded Source

Built Distributions

omikuji-0.2.0-cp38-cp38-manylinux2010_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

omikuji-0.2.0-cp38-cp38-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8

omikuji-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl (451.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

omikuji-0.2.0-cp37-cp37m-win_amd64.whl (374.5 kB view details)

Uploaded CPython 3.7m Windows x86-64

omikuji-0.2.0-cp37-cp37m-manylinux2010_x86_64.whl (1.0 MB view details)

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

omikuji-0.2.0-cp37-cp37m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7m

omikuji-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (451.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

omikuji-0.2.0-cp36-cp36m-win_amd64.whl (373.5 kB view details)

Uploaded CPython 3.6m Windows x86-64

omikuji-0.2.0-cp36-cp36m-manylinux2010_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

omikuji-0.2.0-cp36-cp36m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.6m

omikuji-0.2.0-cp36-cp36m-macosx_10_9_x86_64.whl (451.8 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

omikuji-0.2.0-cp35-cp35m-win_amd64.whl (375.3 kB view details)

Uploaded CPython 3.5m Windows x86-64

omikuji-0.2.0-cp35-cp35m-manylinux2010_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

omikuji-0.2.0-cp35-cp35m-manylinux1_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.5m

omikuji-0.2.0-cp35-cp35m-macosx_10_6_intel.whl (451.6 kB view details)

Uploaded CPython 3.5m macOS 10.6+ intel

File details

Details for the file omikuji-0.2.0.tar.gz.

File metadata

  • Download URL: omikuji-0.2.0.tar.gz
  • Upload date:
  • Size: 47.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d4bb186cd4b3dd710425485f4f52dc416254db36e15b0bd027a685c915776a2f
MD5 8d0ef96d927b02dd8b706b2b7274021e
BLAKE2b-256 c5821df5bc7b0daa6ad40695c3fee81e903d33b1eee7af59feffdf0348944fab

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 15a25ff3cfbaeca9727cf3da09773b472395bb3d32de99100a645024d972df23
MD5 3a0b66b0089e6d9537e3198ec1fda229
BLAKE2b-256 f4392dad4c255f23c46a2226f1430b3c707da3384107d0ca2a54f6c569d4ed33

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 83b18048834ad6b5fa9dc3bc19c92c3925141e2cd82e60a2e4af72437c4747d5
MD5 6625c11dd64e65109a6b2ed6f575ec5b
BLAKE2b-256 a36922176cc3ff81dafbf64786c0781653ba4f8638c647799c2e9c503083e065

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 451.8 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 47f0b72df4f5e9b589fa0022e82687320554c8b0ccfc1e37da526ae91e546b75
MD5 a0c9552b8e2e5e40dc4d12e232b063f8
BLAKE2b-256 7b9947cb73cea33b856292ba17fdf8ba09c515f79faeaae6b1dc812f304b1cb1

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 374.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 60888372b77133abf6a786df8042f454e0be81cb582d8546589c2772dd5e8ffa
MD5 ce6ea76a1c49f51b3f94c3aa71d7038f
BLAKE2b-256 b5f274551fb9129ae088dbfa214ed87eb1a5b96bb9d0cc2751856521bb841229

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d9f26e1aad9c195da4651d260b950f72efbec9be9ace5c8ca8cdf72d1f5b64cc
MD5 6ad44996cf9128be98c252975f526785
BLAKE2b-256 2feff5f917933c1934ed2c90f3c5ebde012855515bf2b539b5d094c8404f9c14

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8a043cf862d071236e8251a3e2db43b42e890e357c56f06c6d9d40c8dcb22bd4
MD5 624c93323424358d541443ebc6756b70
BLAKE2b-256 989a5f408a3eee68d33cf165833fa38f76776ae336225a6c8672061f3fa984aa

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 451.4 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 14f7e4a7de9e7ed28f7d74e797b7864797de1b74f57a5572f22909b7855efa82
MD5 1259167a655dc43eb38e4b40311a6027
BLAKE2b-256 3a5a3bece660ae0a2787c47440dac8e66502b11a6e8d53878f68e37504ebce40

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 373.5 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 20d16fe45d6446c6d20a88322619e5d070f5f4bd282ce1774dbef7c3948b2411
MD5 a256dcf40971aa3ee4eb9a1318a4b3b1
BLAKE2b-256 b636da249a6552f9a56d1781f1dfe024a4b13e5e091e389eeddb9523c8621f93

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1ebc26505a4541fad9b2dc0fa909b6e0f34a1fb63dd5fb50cbc7b75166ee977f
MD5 f9f34c221baff6a6fbb884c645e6f6ef
BLAKE2b-256 fcb9be563a85e93cd494326a292a068828a4f3bbe56d4facfe1b617f316f98fc

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 18d5fc02654868edc12f70fc4a0347fb93805dedd199ce9f34097ba5cda29a5f
MD5 eb7968eaf1d9f6c9f26a0dfd8609388b
BLAKE2b-256 39fc730375594cb7175446f0f28e2717ffbb8358272bc5fcb232d1b0f35d9c17

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 451.8 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 05bceef00978d43d3362ae71b0e7fc3e3d31f0e20d81722662bbfd7f26452342
MD5 9ed651241bd176c33927e0b00430df09
BLAKE2b-256 32db4d1e89a83f2fe2b97e6e5ed014b49ea8bff5a0d7381c047b30fe7eb710e5

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 375.3 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 ea9e64103e0878ba78fbcee1a44b4493e1cc351f17ceb0f49711ded3482232f4
MD5 1b94121876b84642cc3146dcd5f60e07
BLAKE2b-256 21838fc255b481c8a958e84868f3d2aac3bbc6ef1e65bd8c57ca43d25e34310d

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6ac43e54d3dd387ceb95257f5a77046faeb1ffd6c90fbec6e7eb67770810b000
MD5 49bee304d6f0250a3b784e50f53e8d41
BLAKE2b-256 68d39763e535506f7642b9b7b9da651bebb02adf341d2faf4df8548e76ead98d

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f731ba27f37dcc0c568a114f952dd7dcb7a518d02f07ce17e4bf58a59682cec2
MD5 89269873a89fce7ecc1c254e96e6582c
BLAKE2b-256 ebb77fb20086c2da6e2ebfc6996c003b8acde26220f0d4e88fa4244da116244a

See more details on using hashes here.

File details

Details for the file omikuji-0.2.0-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

  • Download URL: omikuji-0.2.0-cp35-cp35m-macosx_10_6_intel.whl
  • Upload date:
  • Size: 451.6 kB
  • Tags: CPython 3.5m, macOS 10.6+ intel
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.6.8

File hashes

Hashes for omikuji-0.2.0-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 dd86b569ec89c3a6bbe9df85378bce9ece3509b90c5d9306ac2e440674f00d93
MD5 a14daed94eaf6c602e32db28b7441eab
BLAKE2b-256 64e075d70b391362fa7115fed33ca7f77e320e8aa400b87168cba8710ca86fd1

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