A library to parse PMML models into Scikit-learn estimators.
Project description
sklearn-pmml-model
A Python library that provides import functionality to all major estimator classes of the popular machine learning library scikit-learn using PMML. This enables portability and interoperability with a wide range of different languages, toolkits and enterprise software.
Installation
The easiest way is to use pip:
$ pip install sklearn-pmml-model
Status
The library currently supports the following models:
Model | Classification | Regression | Categorical features |
---|---|---|---|
Decision Trees | ✅ | ✅ | ✅1 |
Random Forests | ✅ | ✅ | ✅1 |
Gradient Boosting | ✅ | ✅ | ✅1 |
Linear Regression | ✅ | ✅ | ✅3 |
Ridge | ✅2 | ✅ | ✅3 |
Lasso | ✅2 | ✅ | ✅3 |
ElasticNet | ✅2 | ✅ | ✅ |
Gaussian Naive Bayes | ✅ | ✅3 | |
Support Vector Machines | ✅ | ✅ | ✅3 |
Nearest Neighbors | ✅ | ✅ | |
Neural Networks | ✅ | ✅ |
1 Categorical feature support using slightly modified internals, based on scikit-learn#12866.
2 These models differ only in training characteristics, the resulting model is of the same form. Classification is supported using PMMLLogisticRegression
for regression models and PMMLRidgeClassifier
for general regression models.
3 By one-hot encoding categorical features automatically.
Example
A minimal working example (using this PMML file) is shown below:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
from sklearn_pmml_model.ensemble import PMMLForestClassifier
# Prepare data
iris = load_iris()
X = pd.DataFrame(iris.data)
X.columns = np.array(iris.feature_names)
y = pd.Series(np.array(iris.target_names)[iris.target])
y.name = "Class"
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.33, random_state=123)
clf = PMMLForestClassifier(pmml="models/randomForest.pmml")
clf.predict(Xte)
clf.score(Xte, yte)
More examples can be found in the subsequent packages: tree, ensemble, linear_model, naive_bayes and svm.
Benchmark
Depending on the data set and model, sklearn-pmml-model
is between 5 and a 1000 times faster than competing libraries, by leveraging the optimization and industry-tested robustness of sklearn
. Source code for this benchmark can be found in the corresponding jupyter notebook.
Running times (load + predict, in seconds)
Linear model | Naive Bayes | Decision tree | Random Forest | Gradient boosting | ||
---|---|---|---|---|---|---|
Wine | PyPMML |
0.773291 | 0.77384 | 0.777425 | 0.895204 | 0.902355 |
sklearn-pmml-model |
0.005813 | 0.006357 | 0.002693 | 0.108882 | 0.121823 | |
Breast cancer | PyPMML |
3.849855 | 3.878448 | 3.83623 | 4.16358 | 4.13766 |
sklearn-pmml-model |
0.015723 | 0.011278 | 0.002807 | 0.146234 | 0.044016 |
Improvement
Linear model | Naive Bayes | Decision tree | Random Forest | Gradient boosting | ||
---|---|---|---|---|---|---|
Wine | Improvement | 133× | 122× | 289× | 8× | 7× |
Breast cancer | Improvement | 245× | 344× | 1,367× | 28× | 94× |
Development
Prerequisites
Tests can be run using Py.test. Grab a local copy of the source:
$ git clone http://github.com/iamDecode/sklearn-pmml-model
$ cd sklearn-pmml-model
create a virtual environment and activating it:
$ python3 -m venv venv
$ source venv/bin/activate
and install the dependencies:
$ pip install -r requirements.txt
The final step is to build the Cython extensions:
$ python setup.py build_ext --inplace
Testing
You can execute tests with py.test by running:
$ python setup.py pytest
Contributing
Feel free to make a contribution. Please read CONTRIBUTING.md for more details.
License
This project is licensed under the BSD 2-Clause License - see the LICENSE file for details.
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
Hashes for sklearn-pmml-model-0.0.22.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0b511b2e782ce678b171f25f5f4e46a85e4bf7b74e5ba359e95a7ec0c224bf2 |
|
MD5 | 34655899ec299f99530ad79f6b8e1b31 |
|
BLAKE2b-256 | 8cd5ad020984c4079f84198c30ca6dded42fd6edc84cb5bac677006051dd3bea |
Hashes for sklearn_pmml_model-0.0.22-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dffbe202e12d27809a0dd8a2b03632f3971230c13192fb1f079160be1c192c73 |
|
MD5 | 1b63e782fbc28ebb0e954cd4fe22e3d1 |
|
BLAKE2b-256 | 21e54217ed6687ea0958caf08e7104148ee63ef636a060c7781da033d366462b |
Hashes for sklearn_pmml_model-0.0.22-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4de229d92d13dff90a3a414182164383080597bc67f9a2a50d2015992e4831f1 |
|
MD5 | db2c5bfe968df1a99be7c62616d063c2 |
|
BLAKE2b-256 | a7284beae9f7f7355c71372270a519a3f572cb707f0b086d2153f0c2ff43a8aa |
Hashes for sklearn_pmml_model-0.0.22-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f74104e35fcb517aba656018827dec45ea4aa5b4d3e45a7f9e7428456c6df0a0 |
|
MD5 | 4c22f2bac66db2aa97f555167cf51ac1 |
|
BLAKE2b-256 | 0542f9b7ba63fe8fa7fabf5f9c1ec80ee4c4ead1c99c51ca8c0e22f1f415a292 |
Hashes for sklearn_pmml_model-0.0.22-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6b8f73ceb8f6b5336d70036e6a3c4b860503f6857d312e621645dfc7ab70fed |
|
MD5 | d5a56f3efa5c102376e9f2befd6f5493 |
|
BLAKE2b-256 | 3b3662ee6c4821e33881cc7c124a88be262131fc510de5deeed638b5927b1160 |
Hashes for sklearn_pmml_model-0.0.22-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2007074cdf92e9dc882e1d8b2b854d3204d91303e15a11af73c1c523f19a368 |
|
MD5 | 0eb89de4bbc7cbc52b1248fc0d6d417f |
|
BLAKE2b-256 | 4f14bd5c7f74d90fec09500b2c4fa86f21cca60cb6c3e90b0df7da549b90f2c0 |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f638601e2559bf60e5beb114a1ccd05bd5257fa919c049edb08b8782b47563b0 |
|
MD5 | 4bbc8fb9ab60e4567e7144cdd8f576eb |
|
BLAKE2b-256 | 290e677fcd837fc2b0bbbf81c99479b2e0ce0517f3202f949e8f43ade2d7f5ca |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 085710c280d787215c3cb3000b170ab657ecf5a1362c166859b67a045590d0a4 |
|
MD5 | 3e9dfb219b3a27330c4075752df0649d |
|
BLAKE2b-256 | 9fe31cb3e41d1c5c6360f8c95973ded6bf0b2a55db11eba5fbed08c8d1be1d02 |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c88bcfc901f953516f37efea6a4ff2351fef262796f0dbf83c0a356f28dfe1a4 |
|
MD5 | 9399f7290546dbd0461b2496277f919a |
|
BLAKE2b-256 | 46354bc18953445d648ee0ba9536e14922517b254ba55d97c18d9edb314a00c3 |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58dcfa4c819233256ceb316e670cdc29ca04ac7a932d53d5d66c0cc58b3d547d |
|
MD5 | 4634c476889ce1f92d08ed909ec31de2 |
|
BLAKE2b-256 | e17641d148b0037fd3d7bef37e4ccd1c097618e4153c0a5087f35631282a241a |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fe53a980d5e6031f2092b2f579fcf870a2060ae50a4a2d2fdf443e051c1b480 |
|
MD5 | 9f03a33172bccd9c2edd9814be0ec53a |
|
BLAKE2b-256 | ccce6b38aba14fb534cbb55738419f34987fed13bb028856c7eede64b1fa5f5f |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a99600df71ec316d07b339456e79f39722d6ee2bf6fcad9f4587b02333d5da3 |
|
MD5 | a4c2b3fe5942ec21aff0cc93c8b9d810 |
|
BLAKE2b-256 | 5fcff790225ad6681b552e998b3392214744f91f684767d6a00f169234ee57e3 |
Hashes for sklearn_pmml_model-0.0.22-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e38c4189c18e84d47976c0170d65005ca14cb163729700a20f39832f1b9bfbd6 |
|
MD5 | e4e6d680de596a6836317e778df94b4c |
|
BLAKE2b-256 | c848487c719c2957c522cf8d5bb62dfb1cd640d62e79c6d7fa539d4aab8a3cdb |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75b5ddd35ab274fc278b85ed5a24feb822d564746c7f773b0784cc03e179054c |
|
MD5 | d5894a8cab61f82fb959156a4c6638af |
|
BLAKE2b-256 | 5258f90e26b6ae97f77cc3b281c7f6047805aac96918e4ba03c1c2090f5de231 |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81ab3397e79517682140529d73e8b3242f714c3af2ee5f803f72b7d1ada3db31 |
|
MD5 | 4b707705bcb99df7ad936ddb28713a5b |
|
BLAKE2b-256 | 8fd377d04b6c35ca2d9a07d07cfeda13e9390e341413d49d06ae4bcafaa3e711 |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a885b8a6ba50026f23c5305d51160b22d74bc1d07805151ec130d28d2c938f7 |
|
MD5 | 663cf5527c30a9fccdbfff9fed20da7f |
|
BLAKE2b-256 | fccef44e9afbfa3547282a2429197d29bb757770b34f3e8094cf98ed14a41803 |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27bbb1d76734ee50c96bffd8779a3bddaba4abdee188e015485171fe7adb1ae4 |
|
MD5 | f48d01a109b1d8225f3c0a734df1fc53 |
|
BLAKE2b-256 | 961c5d36277665f634e0433a79531cc64d40a0b55af4cbc83c1bfd208658a0ba |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 345274ba08f66f4aa54b60b0984d5f85ea4e3e23d164847cb065351bb3ebc535 |
|
MD5 | 8026bfa608516a9a56a0b975200d995d |
|
BLAKE2b-256 | a7694862f2908d74189d17ed9e0b91f3bfaec3843823f31b927b372911d5dfaf |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9ef7aa68c5b96a311b8f0f058e3f0410c3e0958e6b72854f90e261b36533c76 |
|
MD5 | aced21b941ebaf1861539a96dab7b364 |
|
BLAKE2b-256 | ef502ed93c77936500d334c6fa065e890ab5bf3aa4568e3611ee8c15361d6c54 |
Hashes for sklearn_pmml_model-0.0.22-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9dd8e87d0d7d6c22bd9536452da46ef596af2ef815c8727c0c1401ec8b60ddfc |
|
MD5 | 244c099dd3170ff5fc171e11aef92817 |
|
BLAKE2b-256 | f6dd3d55965d47d1ad41760e14cb8f4fdfc7801f9ce77420f79e1fad8842dc5b |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b667e56e150bb0b5d598a3c4adc443213f6db90c8b215828b2d9d8e82e2dac0 |
|
MD5 | e2e330aa0e814637e38f6f1fa3b9beb5 |
|
BLAKE2b-256 | 475ba4ec0c1dfcc169cad575a87919b3eb8911b1e661923f562a8d831f4a6e61 |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 315f75574815adb2d415ec6fb1d9db75e492871fdca748bd66a0c6b54dc2f18d |
|
MD5 | dbda13e6cf5f1451ee95b49a9b6ffae1 |
|
BLAKE2b-256 | 57b96e32d9e44ce9780f1d3589f04e553be69c9e624f6fed6b8292a1212f25ec |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36718fd1f636ddc83975d900b50d207d77c86bafb26bd80fa0dd8e92d5887bd9 |
|
MD5 | e075288c9ee6c052dfb3b8287e9bdef1 |
|
BLAKE2b-256 | f638124b686e90bd587d7d28191d7fa2916596295b053f127d2e12b007fec27c |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc82c6a32762fe8d0678275d243106b69a092b600533b34f065af8b8214cfc84 |
|
MD5 | a44ee3d8d723206bebf616c451e3ba6f |
|
BLAKE2b-256 | b5400d4bbe5566989db76cd27c538a726193f65690ff34a6218cf355ec5bd976 |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b77a879d2a80c3e0ada831a891f1cae450b26a18c3c4490b2eb0e8c054281ff |
|
MD5 | 61a846b8a68d248b6d1e0a21aedbd6be |
|
BLAKE2b-256 | 1e3e0a20312f58544dfa9a92e475331347c2dd8491edefd36da60caafaae86c2 |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8361f6e68b4870e24bd813533bc2d8518f36017d015c6cda71f9e34e3a0287bb |
|
MD5 | 529c11aa40682287c4195beb6948537c |
|
BLAKE2b-256 | 6749919965b57eb2463cb460f350f076cd71c5c84a2767395fac55e438b2fd63 |
Hashes for sklearn_pmml_model-0.0.22-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d00f0f5b2fb09466b7dfd9da99039465e94a1dd9ab864a004f922ed964b57127 |
|
MD5 | ff9551f3576836336395a53c77f8b88b |
|
BLAKE2b-256 | dbdee7a3cb5a14e2d9bc412569bb56a6c4ac8177f70abaaf96b47f1068984058 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07284e149da67f52b21e919e82e433c0b16b0a7e6aac3082fc3a7b2141f2b9c3 |
|
MD5 | 5808c736ada101393279bd208ba17552 |
|
BLAKE2b-256 | 0d837ed754da70f48b0a8848087ec784fa57c718449d47cd323dfd3f23616174 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6ab8d4e66b51bb2db179e1da7946ee419332d910186e9dc5b1bbedca9bc8166 |
|
MD5 | 51e1861eb19ccd794882e8925c6c3351 |
|
BLAKE2b-256 | 6728bbde80831fe5a7f9ebf437b4667d59ee117cb84609121b39afdfcc283830 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6adbf730964b8db7f284a7dc9c3e8db30ba51eeb5b5445785c041c41780c9d24 |
|
MD5 | f2a46b1fb1b9ec77d722e977c91554fc |
|
BLAKE2b-256 | 2a6823831fa905ccc7adac32014c0b00c0986f8e16c403c9eb886d5275848d41 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 611c80604d533f46e6db5b0572f98e5946a087a119ac565ef3d98f651a7eb4fd |
|
MD5 | 647ffbb707a003f857712b3ecd7833e5 |
|
BLAKE2b-256 | 61e44b07b035a08adffc595c412447a0e3340d877df4529c40c002b701accb9a |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc100bdb1a82cd0ddad5dd32b098b8121cd138527f683478a80df46af8749ca0 |
|
MD5 | 7953fe6ecf1e2c777727dcb312dcaab7 |
|
BLAKE2b-256 | 31c2c593d785f689bfdb7bb3ebb4fab0c037d7aec8daddd3ecbcc365d3efed58 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5be30a881f5401311b31476c00361d17a4947a26b44b807172505311663c18a7 |
|
MD5 | 2de138ed40a8ebd0b922f7f6e2b4450e |
|
BLAKE2b-256 | edc26cc573e4e79e57053c3e1ba94ba4732bdf978eb2f9bce02904fb03146712 |
Hashes for sklearn_pmml_model-0.0.22-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49ab779836c50a0ab9dc11f3d557d537d8741bc8db52ef20b912e1c7418b298c |
|
MD5 | 6d5aab99830042e8199a074e922d0da0 |
|
BLAKE2b-256 | ca597965080dd1351cd1b2c4bec82683fb5bcf76ccce72cdc9b7789eb1b91fc4 |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31d89d2278e9e8def3ec0d8de39e15da69ba895547015deb33d2089f245bcfe9 |
|
MD5 | c5afa08ddcc51270e850a49f73e09960 |
|
BLAKE2b-256 | 0d0fbe9f329e52e1761decb48c3e7d0fd10db9a777d34eed3fa770e6f4c9021e |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40dec383e9584a21c8d3a5f97232d70420f3a35fe9e7e0737b34a304bd6245ea |
|
MD5 | f1adce6a90f69cf12f61ae3e50493862 |
|
BLAKE2b-256 | d2aeec32eff7652c25fe29142d9e840e8666131aeee194d98bffa0d9ca96fc20 |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0b51b9e8cdfb0faff18053ec3187cf303118fc73537d9994dcde091edaaa2a3 |
|
MD5 | 53141171daacbcf16ab17ad023c69eee |
|
BLAKE2b-256 | cfdf2bc26b976abcebf9db8ed412d5b7e3dec6ae537b713f9a5b188bc34986b2 |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c8c0097a90ccf31ebb3bf606c21ccfb9471bae83f2a6d2590a5ba3a2d7e054a |
|
MD5 | a212a5cb5815d89fa7940f38f2a25ec6 |
|
BLAKE2b-256 | b0701f8c045aede443ef2afaeea5bceac0334ad035371832290e2177891a782b |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72739d800bc8df6f699982034cee1e3bcaec59018e453413834a7c7a7616fa25 |
|
MD5 | 4bb56c41e784945945eea27c15a008bc |
|
BLAKE2b-256 | bb780803f744214ad9b38698a72dd2a4e894f70df343dd624cddf291cba1b78d |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52e10bf3593b4f20cc809006c5e24cb30068f38307eb3f55fa9008564d7d167d |
|
MD5 | 568bbcf6aa4a4e54f1612c3bb701bec1 |
|
BLAKE2b-256 | 644a3ee00a1357ee8d32047ccf52797d7aab0e4732f134bdb98f5010f42251bd |
Hashes for sklearn_pmml_model-0.0.22-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dbfce2b0ffd916078a01e1edde01f2fd5f5b536ae4542c059ba78b482e3e949 |
|
MD5 | e2590cd77ce68de34551e1398c3d9f73 |
|
BLAKE2b-256 | ac3865488a877af8d94be6ad56a8af9c327a8a6ebfc6fabc02820dd517ddeb62 |