Skip to main content

A collaborative-filtering and content-based recommender system for both explicit and implicit datasets.

Project description

LibRecommender

Overview

LibRecommender is an easy-to-use recommender system focused on end-to-end recommendation. The main features are:

  • Implemented a number of popular recommendation algorithms such as SVD++, DeepFM, BPR etc, see full algorithm list.
  • A hybrid recommender system, which allows user to use either collaborative-filtering or content-based features or both. New features can be added on the fly.
  • Low memory usage, automatically convert categorical and multi-value categorical features to sparse representation.
  • Support training for both explicit and implicit datasets, and negative sampling can be used for implicit dataset.
  • Making use of Cython or Tensorflow for high-speed model training.
  • Provide end-to-end workflow, i.e. data handling / preprocessing -> model training -> evaluate -> serving.
  • Support cold-start prediction and recommendation.
  • Provide unified and friendly API for all algorithms. Easy to retrain model with new users/items.

Usage

pure collaborative-filtering example :

import numpy as np
import pandas as pd
from libreco.data import random_split, DatasetPure
from libreco.algorithms import SVDpp  # pure data, algorithm SVD++
from libreco.evaluation import evaluate

data = pd.read_csv("examples/sample_data/sample_movielens_rating.dat", sep="::",
                   names=["user", "item", "label", "time"])

# split whole data into three folds for training, evaluating and testing
train_data, eval_data, test_data = random_split(data, multi_ratios=[0.8, 0.1, 0.1])

train_data, data_info = DatasetPure.build_trainset(train_data)
eval_data = DatasetPure.build_evalset(eval_data)
test_data = DatasetPure.build_testset(test_data)
print(data_info)   # n_users: 5894, n_items: 3253, data sparsity: 0.4172 %

svdpp = SVDpp(task="rating", data_info=data_info, embed_size=16, n_epochs=3, lr=0.001,
              reg=None, batch_size=256)
# monitor metrics on eval_data during training
svdpp.fit(train_data, verbose=2, eval_data=eval_data, metrics=["rmse", "mae", "r2"])

# do final evaluation on test data
print("evaluate_result: ", evaluate(model=svdpp, data=test_data,
                                    metrics=["rmse", "mae"]))
# predict preference of user 2211 to item 110
print("prediction: ", svdpp.predict(user=2211, item=110))
# recommend 7 items for user 2211
print("recommendation: ", svdpp.recommend_user(user=2211, n_rec=7))

# cold-start prediction
print("cold prediction: ", svdpp.predict(user="ccc", item="not item",
                                         cold_start="average"))
# cold-start recommendation
print("cold recommendation: ", svdpp.recommend_user(user="are we good?",
                                                    n_rec=7,
                                                    cold_start="popular"))

include features example :

import numpy as np
import pandas as pd
from libreco.data import split_by_ratio_chrono, DatasetFeat
from libreco.algorithms import YouTubeRanking  # feat data, algorithm YouTubeRanking

data = pd.read_csv("examples/sample_data/sample_movielens_merged.csv", sep=",", header=0)
data["label"] = 1  # convert to implicit data and do negative sampling afterwards

# split into train and test data based on time
train_data, test_data = split_by_ratio_chrono(data, test_size=0.2)

# specify complete columns information
sparse_col = ["sex", "occupation", "genre1", "genre2", "genre3"]
dense_col = ["age"]
user_col = ["sex", "age", "occupation"]
item_col = ["genre1", "genre2", "genre3"]

train_data, data_info = DatasetFeat.build_trainset(
    train_data, user_col, item_col, sparse_col, dense_col
)
test_data = DatasetFeat.build_testset(test_data)
train_data.build_negative_samples(data_info)  # sample negative items for each record
test_data.build_negative_samples(data_info)
print(data_info)  # n_users: 5962, n_items: 3226, data sparsity: 0.4185 %

ytb_ranking = YouTubeRanking(task="ranking", data_info=data_info, embed_size=16,
                             n_epochs=3, lr=1e-4, batch_size=512, use_bn=True,
                             hidden_units="128,64,32")
ytb_ranking.fit(train_data, verbose=2, shuffle=True, eval_data=test_data,
                metrics=["loss", "roc_auc", "precision", "recall", "map", "ndcg"])

# predict preference of user 2211 to item 110
print("prediction: ", ytb_ranking.predict(user=2211, item=110))
# recommend 7 items for user 2211
print("recommendation(id, probability): ", ytb_ranking.recommend_user(user=2211, n_rec=7))

# cold-start prediction
print("cold prediction: ", ytb_ranking.predict(user="ccc", item="not item",
                                               cold_start="average"))
# cold-start recommendation
print("cold recommendation: ", ytb_ranking.recommend_user(user="are we good?",
                                                          n_rec=7,
                                                          cold_start="popular"))

For more examples and usages, see User Guide

Data Format

JUST normal data format, each line represents a sample. One thing is important, the model assumes that user, item, and label column index are 0, 1, and 2, respectively. You may wish to change the column order if that's not the case. Take for Example, the movielens-1m dataset:

1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
1::3408::4::978300275

Besides, if you want to use some other meta features (e.g., age, sex, category etc.), you need to tell the model which columns are [sparse_col, dense_col, user_col, item_col], which means all features must be in a same table. See above YouTubeRanking for example.

Also note that your data should not contain missing values.

Serving

For how to serve a trained model in LibRecommender, see Serving Guide .

Installation & Dependencies

From pypi :  

$ pip install LibRecommender==0.6.10

To build from source, you 'll first need Cython and Numpy:

$ # pip install numpy cython
$ git clone https://github.com/massquantity/LibRecommender.git
$ cd LibRecommender
$ python setup.py install

Basic Dependencies in libreco:

  • Python >= 3.6
  • TensorFlow >= 1.14
  • Numpy >= 1.15.4
  • Cython >= 0.29.0
  • Pandas >= 0.23.4
  • Scipy >= 1.2.1
  • scikit-learn >= 0.20.0
  • gensim >= 4.0.0
  • tqdm >= 4.46.0
  • hnswlib

LibRecommender is tested under TensorFlow 1.14 and 2.5. If you encounter any problem during running, feel free to open an issue.

Known issue: TensorFlow 2.x is not fully compatible with Numpy >= 1.20. Try downgrading Numpy pip install numpy==1.19.5 if you encounter tf errors. Refer to Numpy v1.20+ compatibility

Optional Serving Dependencies:

References

Algorithm Category Paper
userCF / itemCF pure Item-Based Collaborative Filtering Recommendation Algorithms
SVD pure Matrix Factorization Techniques for Recommender Systems
SVD ++ pure Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model
ALS pure 1. Matrix Completion via Alternating Least Square(ALS) /
2. Collaborative Filtering for Implicit Feedback Datasets /
3. Applications of the Conjugate Gradient Method for Implicit Feedback Collaborative Filtering
NCF pure Neural Collaborative Filtering
BPR pure BPR: Bayesian Personalized Ranking from Implicit Feedback
Wide & Deep feat Wide & Deep Learning for Recommender Systems
FM feat Factorization Machines
DeepFM feat DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
YouTubeMatch YouTubeRanking feat, seq Deep Neural Networks for YouTube Recommendations
AutoInt feat AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks
DIN feat, seq Deep Interest Network for Click-Through Rate Prediction
Item2Vec pure, seq Item2Vec: Neural Item Embedding for Collaborative Filtering
RNN4Rec / GRU4Rec pure, seq Session-based Recommendations with Recurrent Neural Networks
Caser pure, seq Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding
WaveNet pure, seq WaveNet: A Generative Model for Raw Audio

pure means collaborative-filtering algorithms which only use behavior data, feat means other features can be included, seq means sequence or graph algorithms.

License

MIT


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

LibRecommender-0.6.10.tar.gz (457.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

LibRecommender-0.6.10-cp310-cp310-win_amd64.whl (734.7 kB view details)

Uploaded CPython 3.10Windows x86-64

LibRecommender-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

LibRecommender-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

LibRecommender-0.6.10-cp39-cp39-win_amd64.whl (734.7 kB view details)

Uploaded CPython 3.9Windows x86-64

LibRecommender-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

LibRecommender-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

LibRecommender-0.6.10-cp38-cp38-win_amd64.whl (734.3 kB view details)

Uploaded CPython 3.8Windows x86-64

LibRecommender-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

LibRecommender-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

LibRecommender-0.6.10-cp37-cp37m-win_amd64.whl (730.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

LibRecommender-0.6.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

LibRecommender-0.6.10-cp37-cp37m-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

LibRecommender-0.6.10-cp36-cp36m-win_amd64.whl (728.4 kB view details)

Uploaded CPython 3.6mWindows x86-64

LibRecommender-0.6.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

LibRecommender-0.6.10-cp36-cp36m-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file LibRecommender-0.6.10.tar.gz.

File metadata

  • Download URL: LibRecommender-0.6.10.tar.gz
  • Upload date:
  • Size: 457.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10.tar.gz
Algorithm Hash digest
SHA256 524bc73f6fe56bc101d08db6a1eccd2e608263a0721bd6e1ed2467b7a5bf0cd4
MD5 3c7ee588f3cffd565d2b2704327eb71f
BLAKE2b-256 850daf58ba2ff7168d5efaf243330ceb8e63b51010e9903f7400fda2172b7227

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 734.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ac7f47fed1ff8f1ad08c44ad92071163bcc9623a63efc4c4fb6e0981494d0836
MD5 88e24e23dffc83d7a329f1a745515701
BLAKE2b-256 4ced6cef40c1b6e2c7bda94763b239d37a01db153c1024050a37269ff48b38fe

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LibRecommender-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7af8af9c2d81f65a665395c90796d90fe7f66ada327ad919ac32a07eb9943db0
MD5 61542bc70caa79abfcf6831d87b0ce4b
BLAKE2b-256 c43e30e4cb4aacaf7cd4c5b11f7f3a2577206f7a51a3ed7326419f33a25a4578

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7682c89ee4bea31726eb17e264703aefd6129af2212eb207d479facf3cc92ab0
MD5 b2207de54b4b4b0848488952ec4950cf
BLAKE2b-256 513ac3a02800fb33eb3d173c4b0ecdfe9d00aafe9ffda06bdf8af0fbd20b8d8f

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 734.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 23ec7a5f0ddc08a2f96cb98260fd3cb8060c75cfec6dc9e6f8d0f056cd48eb5d
MD5 9b7b209a366d6a9f39a7062185168295
BLAKE2b-256 44e900a0e0267837f274d0465665be39afd959fdac6aeda48ee2fa114bb695e8

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LibRecommender-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f1057c6b6c47f71f03c7f46d2ed8a4c1e320aa1073a674a5b3b2816ba4d17a5
MD5 8e02308f33793d3dd791e4b7b6996a56
BLAKE2b-256 c340b249ec092c02f20fa3aba86e67b170795ce5186955edb91ca23d49628040

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ef1afb696e90c625ab273c5b685a8ef0df26ea6877057f6ee636d57b8cf3d56e
MD5 d36326e7620b1e76e601b0cf3e68baf7
BLAKE2b-256 e73b5459f59f709ca132718bc1fc6cdbc6d80929dea35c95190f4ba9eb4fda6e

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 734.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d8acb2cf19f9534e7fb69d03287baf36525d252fdf262f62cfd245085a553a22
MD5 3922e40a09327cf0f09b50a6b15c61e1
BLAKE2b-256 195fc52dab6cfd441708bd979ec90c8bbc5f871c7c9c39bc2804d9c417c63eb6

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LibRecommender-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f10203f230a0130a2638526a22e6d6551f7f999c1c6764cf91293c1767e21b1a
MD5 9c1f0c1a71f051ee8c82330539b14c6a
BLAKE2b-256 ea1588178e40f93da4371f66e94035ea793c87ab07f5c85347322a372189b59a

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73b3a2d8be9449a5f7d533a5f8bac053c8f69ea3baa174a73c269c8bcaaec28a
MD5 27d9d5a4640704694d1c517e65aaa3ba
BLAKE2b-256 9d26d6e5723a3e1728d00157b810f6f6dec8a9d703210d4a7798c22b1d9f8117

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 730.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0cc0dced6244fcad7747cbf57d03ba68527b2b1e506c7d1c164c0e8976e42d85
MD5 32472d6809d09177c5546cbac5c3cb73
BLAKE2b-256 83960385f69a11762bb458b6601c5f4ecf13bf24e04301a16e87a2e510346033

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LibRecommender-0.6.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6975fb9e8b2140b2e86f81848ccc631359524cf2f909fb326a7e7f2667ad70c0
MD5 ad2721b79d1a8e5fc09d60952a5acf14
BLAKE2b-256 a69490dc88a2645681dd77f175c8c071eef451d8c933c14b8a88beaccbbcb503

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 74e8f1a6ae31faee65f75d4be99c214c989dabd521809be3b60fe22ed7c98678
MD5 43d18f272736953ac79b24b22170e576
BLAKE2b-256 a53e5207822d78ab5a5808fc21ab775c56be0c23f380d8e97540646b6b211c9b

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 728.4 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 0fade9158a0239dc6766cb95cb164dd0cb8faea6c9e54e39a7dd08bbef122301
MD5 09ecb8c47a522e0f0dd7468efdacc8ba
BLAKE2b-256 e211c8a0446231bda6ddf4264c2c7490d130425723f210a87499651d804c3a0d

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LibRecommender-0.6.10-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ba1bc022b47b481970e6776f04fba6365b77ebec61d28187018d6e5ab82ea28
MD5 8d584ee7988d46c83b31b95a95b3eb82
BLAKE2b-256 8b2f8a0d8dcae0da652f59c203a7585e38f7a269956a149e27b7f79bad852147

See more details on using hashes here.

File details

Details for the file LibRecommender-0.6.10-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: LibRecommender-0.6.10-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.5

File hashes

Hashes for LibRecommender-0.6.10-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59253aa1f7e8e1499cddc3a62c86a6cd3f7158b0e843f6088efc6f9de6ed1a92
MD5 4c56dc007244e282b1fc853c1b37aa07
BLAKE2b-256 4af55600fd1263aa517b5b26ad4b27bff44c3829ce87c06e51850fbd688acc8f

See more details on using hashes here.

Supported by

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