Skip to main content

Tomoto, The Topic Modeling Tool for Python

Project description

What is tomotopy?

tomotopy is a Python extension of tomoto (Topic Modeling Tool) which is a Gibbs-sampling based topic model library written in C++. It utilizes a vectorization of modern CPUs for maximizing speed. The current version of tomoto supports several major topic models including

  • Latent Dirichlet Allocation (tomotopy.LDAModel)

  • Labeled LDA (tomotopy.LLDAModel)

  • Partially Labeled LDA (tomotopy.PLDAModel)

  • Supervised LDA (tomotopy.SLDAModel)

  • Dirichlet Multinomial Regression (tomotopy.DMRModel)

  • Generalized Dirichlet Multinomial Regression (tomotopy.GDMRModel)

  • Hierarchical Dirichlet Process (tomotopy.HDPModel)

  • Hierarchical LDA (tomotopy.HLDAModel)

  • Multi Grain LDA (tomotopy.MGLDAModel)

  • Pachinko Allocation (tomotopy.PAModel)

  • Hierarchical PA (tomotopy.HPAModel)

  • Correlated Topic Model (tomotopy.CTModel)

  • Dynamic Topic Model (tomotopy.DTModel).

The most recent version of tomotopy is 0.8.0.

https://badge.fury.io/py/tomotopy.svg

Getting Started

You can install tomotopy easily using pip. (https://pypi.org/project/tomotopy/)

$ pip install tomotopy

The supported OS and Python versions are:

  • Linux (x86-64) with Python >= 3.5

  • macOS >= 10.13 with Python >= 3.5

  • Windows 7 or later (x86, x86-64) with Python >= 3.5

  • Other OS with Python >= 3.5: Compilation from source code required (with c++11 compatible compiler)

After installing, you can start tomotopy by just importing.

import tomotopy as tp
print(tp.isa) # prints 'avx2', 'avx', 'sse2' or 'none'

Currently, tomotopy can exploits AVX2, AVX or SSE2 SIMD instruction set for maximizing performance. When the package is imported, it will check available instruction sets and select the best option. If tp.isa tells none, iterations of training may take a long time. But, since most of modern Intel or AMD CPUs provide SIMD instruction set, the SIMD acceleration could show a big improvement.

Here is a sample code for simple LDA training of texts from ‘sample.txt’ file.

import tomotopy as tp
mdl = tp.LDAModel(k=20)
for line in open('sample.txt'):
    mdl.add_doc(line.strip().split())

for i in range(0, 100, 10):
    mdl.train(10)
    print('Iteration: {}\tLog-likelihood: {}'.format(i, mdl.ll_per_word))

for k in range(mdl.k):
    print('Top 10 words of topic #{}'.format(k))
    print(mdl.get_topic_words(k, top_n=10))

Performance of tomotopy

tomotopy uses Collapsed Gibbs-Sampling(CGS) to infer the distribution of topics and the distribution of words. Generally CGS converges more slowly than Variational Bayes(VB) that [gensim’s LdaModel] uses, but its iteration can be computed much faster. In addition, tomotopy can take advantage of multicore CPUs with a SIMD instruction set, which can result in faster iterations.

[gensim’s LdaModel]: https://radimrehurek.com/gensim/models/ldamodel.html

Following chart shows the comparison of LDA model’s running time between tomotopy and gensim. The input data consists of 1000 random documents from English Wikipedia with 1,506,966 words (about 10.1 MB). tomotopy trains 200 iterations and gensim trains 10 iterations.

https://bab2min.github.io/tomotopy/images/tmt_i5.png

↑ Performance in Intel i5-6600, x86-64 (4 cores)

https://bab2min.github.io/tomotopy/images/tmt_xeon.png

↑ Performance in Intel Xeon E5-2620 v4, x86-64 (8 cores, 16 threads)

https://bab2min.github.io/tomotopy/images/tmt_r7_3700x.png

↑ Performance in AMD Ryzen7 3700X, x86-64 (8 cores, 16 threads)

Although tomotopy iterated 20 times more, the overall running time was 5~10 times faster than gensim. And it yields a stable result.

It is difficult to compare CGS and VB directly because they are totaly different techniques. But from a practical point of view, we can compare the speed and the result between them. The following chart shows the log-likelihood per word of two models’ result.

https://bab2min.github.io/tomotopy/images/LLComp.png

The SIMD instruction set has a great effect on performance. Following is a comparison between SIMD instruction sets.

https://bab2min.github.io/tomotopy/images/SIMDComp.png

Fortunately, most of recent x86-64 CPUs provide AVX2 instruction set, so we can enjoy the performance of AVX2.

Model Save and Load

tomotopy provides save and load method for each topic model class, so you can save the model into the file whenever you want, and re-load it from the file.

import tomotopy as tp

mdl = tp.HDPModel()
for line in open('sample.txt'):
    mdl.add_doc(line.strip().split())

for i in range(0, 100, 10):
    mdl.train(10)
    print('Iteration: {}\tLog-likelihood: {}'.format(i, mdl.ll_per_word))

# save into file
mdl.save('sample_hdp_model.bin')

# load from file
mdl = tp.HDPModel.load('sample_hdp_model.bin')
for k in range(mdl.k):
    if not mdl.is_live_topic(k): continue
    print('Top 10 words of topic #{}'.format(k))
    print(mdl.get_topic_words(k, top_n=10))

# the saved model is HDP model,
# so when you load it by LDA model, it will raise an exception
mdl = tp.LDAModel.load('sample_hdp_model.bin')

When you load the model from a file, a model type in the file should match the class of methods.

See more at tomotopy.LDAModel.save and tomotopy.LDAModel.load methods.

Documents in the Model and out of the Model

We can use Topic Model for two major purposes. The basic one is to discover topics from a set of documents as a result of trained model, and the more advanced one is to infer topic distributions for unseen documents by using trained model.

We named the document in the former purpose (used for model training) as document in the model, and the document in the later purpose (unseen document during training) as document out of the model.

In tomotopy, these two different kinds of document are generated differently. A document in the model can be created by tomotopy.LDAModel.add_doc method. add_doc can be called before tomotopy.LDAModel.train starts. In other words, after train called, add_doc cannot add a document into the model because the set of document used for training has become fixed.

To acquire the instance of the created document, you should use tomotopy.LDAModel.docs like:

mdl = tp.LDAModel(k=20)
idx = mdl.add_doc(words)
if idx < 0: raise RuntimeError("Failed to add doc")
doc_inst = mdl.docs[idx]
# doc_inst is an instance of the added document

A document out of the model is generated by tomotopy.LDAModel.make_doc method. make_doc can be called only after train starts. If you use make_doc before the set of document used for training has become fixed, you may get wrong results. Since make_doc returns the instance directly, you can use its return value for other manipulations.

mdl = tp.LDAModel(k=20)
# add_doc ...
mdl.train(100)
doc_inst = mdl.make_doc(unseen_doc) # doc_inst is an instance of the unseen document

Inference for Unseen Documents

If a new document is created by tomotopy.LDAModel.make_doc, its topic distribution can be inferred by the model. Inference for unseen document should be performed using tomotopy.LDAModel.infer method.

mdl = tp.LDAModel(k=20)
# add_doc ...
mdl.train(100)
doc_inst = mdl.make_doc(unseen_doc)
topic_dist, ll = mdl.infer(doc_inst)
print("Topic Distribution for Unseen Docs: ", topic_dist)
print("Log-likelihood of inference: ", ll)

The infer method can infer only one instance of tomotopy.Document or a list of instances of tomotopy.Document. See more at tomotopy.LDAModel.infer.

Parallel Sampling Algorithms

Since version 0.5.0, tomotopy allows you to choose a parallelism algorithm. The algorithm provided in versions prior to 0.4.2 is COPY_MERGE, which is provided for all topic models. The new algorithm PARTITION, available since 0.5.0, makes training generally faster and more memory-efficient, but it is available at not all topic models.

The following chart shows the speed difference between the two algorithms based on the number of topics and the number of workers.

https://bab2min.github.io/tomotopy/images/algo_comp.png https://bab2min.github.io/tomotopy/images/algo_comp2.png

Pining Topics using Word Priors

Since version 0.6.0, a new method tomotopy.LDAModel.set_word_prior has been added. It allows you to control word prior for each topic. For example, we can set the weight of the word ‘church’ to 1.0 in topic 0, and the weight to 0.1 in the rest of the topics by following codes. This means that the probability that the word ‘church’ is assigned to topic 0 is 10 times higher than the probability of being assigned to another topic. Therefore, most of ‘church’ is assigned to topic 0, so topic 0 contains many words related to ‘church’. This allows to manipulate some topics to be placed at a specific topic number.

import tomotopy as tp
mdl = tp.LDAModel(k=20)

# add documents into `mdl`

# setting word prior
mdl.set_word_prior('church', [1.0 if k == 0 else 0.1 for k in range(20)])

See word_prior_example in example.py for more details.

Examples

You can find an example python code of tomotopy at https://github.com/bab2min/tomotopy/blob/master/example.py .

You can also get the data file used in the example code at https://drive.google.com/file/d/18OpNijd4iwPyYZ2O7pQoPyeTAKEXa71J/view .

License

tomotopy is licensed under the terms of MIT License, meaning you can use it for any reasonable purpose and remain in complete ownership of all the documentation you produce.

History

  • 0.8.0 (2020-06-06)
    • Since NumPy was introduced in tomotopy, many methods and properties of tomotopy return not just list, but numpy.ndarray now.

    • Tomotopy has a new dependency NumPy >= 1.10.0.

    • A wrong estimation of tomotopy.HDPModel.infer was fixed.

    • A new method about converting HDPModel to LDAModel was added.

    • New properties including tomotopy.LDAModel.used_vocabs, tomotopy.LDAModel.used_vocab_freq and tomotopy.LDAModel.used_vocab_df were added into topic models.

    • A new g-DMR topic model(tomotopy.GDMRModel) was added.

    • An error at initializing tomotopy.label.FoRelevance in macOS was fixed.

    • An error that occured when using tomotopy.utils.Corpus created without raw parameters was fixed.

  • 0.7.1 (2020-05-08)
    • tomotopy.Document.path was added for tomotopy.HLDAModel.

    • A memory corruption bug in tomotopy.label.PMIExtractor was fixed.

    • A compile error in gcc 7 was fixed.

  • 0.7.0 (2020-04-18)
    • tomotopy.DTModel was added into the package.

    • A bug in tomotopy.utils.Corpus.save was fixed.

    • A new method tomotopy.Document.get_count_vector was added into Document class.

    • Now linux distributions use manylinux2010 and an additional optimization is applied.

  • 0.6.2 (2020-03-28)
    • A critical bug related to save and load was fixed. Version 0.6.0 and 0.6.1 have been removed from releases.

  • 0.6.1 (2020-03-22) (removed)
    • A bug related to module loading was fixed.

  • 0.6.0 (2020-03-22) (removed)
    • tomotopy.utils.Corpus class that manages multiple documents easily was added.

    • tomotopy.LDAModel.set_word_prior method that controls word-topic priors of topic models was added.

    • A new argument min_df that filters words based on document frequency was added into every topic model’s __init__.

    • tomotopy.label, the submodule about topic labeling was added. Currently, only tomotopy.label.FoRelevance is provided.

  • 0.5.2 (2020-03-01)
    • A segmentation fault problem was fixed in tomotopy.LLDAModel.add_doc.

    • A bug was fixed that infer of tomotopy.HDPModel sometimes crashes the program.

    • A crash issue was fixed of tomotopy.LDAModel.infer with ps=tomotopy.ParallelScheme.PARTITION, together=True.

  • 0.5.1 (2020-01-11)
    • A bug was fixed that tomotopy.SLDAModel.make_doc doesn’t support missing values for y.

    • Now tomotopy.SLDAModel fully supports missing values for response variables y. Documents with missing values (NaN) are included in modeling topic, but excluded from regression of response variables.

  • 0.5.0 (2019-12-30)
    • Now tomotopy.PAModel.infer returns both topic distribution nd sub-topic distribution.

    • New methods get_sub_topics and get_sub_topic_dist were added into tomotopy.Document. (for PAModel)

    • New parameter parallel was added for tomotopy.LDAModel.train and tomotopy.LDAModel.infer method. You can select parallelism algorithm by changing this parameter.

    • tomotopy.ParallelScheme.PARTITION, a new algorithm, was added. It works efficiently when the number of workers is large, the number of topics or the size of vocabulary is big.

    • A bug where rm_top didn’t work at min_cf < 2 was fixed.

  • 0.4.2 (2019-11-30)
    • Wrong topic assignments of tomotopy.LLDAModel and tomotopy.PLDAModel were fixed.

    • Readable __repr__ of tomotopy.Document and tomotopy.Dictionary was implemented.

  • 0.4.1 (2019-11-27)
    • A bug at init function of tomotopy.PLDAModel was fixed.

  • 0.4.0 (2019-11-18)
    • New models including tomotopy.PLDAModel and tomotopy.HLDAModel were added into the package.

  • 0.3.1 (2019-11-05)
    • An issue where get_topic_dist() returns incorrect value when min_cf or rm_top is set was fixed.

    • The return value of get_topic_dist() of tomotopy.MGLDAModel document was fixed to include local topics.

    • The estimation speed with tw=ONE was improved.

  • 0.3.0 (2019-10-06)
    • A new model, tomotopy.LLDAModel was added into the package.

    • A crashing issue of HDPModel was fixed.

    • Since hyperparameter estimation for HDPModel was implemented, the result of HDPModel may differ from previous versions.

      If you want to turn off hyperparameter estimation of HDPModel, set optim_interval to zero.

  • 0.2.0 (2019-08-18)
    • New models including tomotopy.CTModel and tomotopy.SLDAModel were added into the package.

    • A new parameter option rm_top was added for all topic models.

    • The problems in save and load method for PAModel and HPAModel were fixed.

    • An occassional crash in loading HDPModel was fixed.

    • The problem that ll_per_word was calculated incorrectly when min_cf > 0 was fixed.

  • 0.1.6 (2019-08-09)
    • Compiling errors at clang with macOS environment were fixed.

  • 0.1.4 (2019-08-05)
    • The issue when add_doc receives an empty list as input was fixed.

    • The issue that tomotopy.PAModel.get_topic_words doesn’t extract the word distribution of subtopic was fixed.

  • 0.1.3 (2019-05-19)
    • The parameter min_cf and its stopword-removing function were added for all topic models.

  • 0.1.0 (2019-05-12)
    • First version of tomotopy

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

tomotopy-0.8.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

tomotopy-0.8.0-cp38-cp38-win_amd64.whl (4.7 MB view details)

Uploaded CPython 3.8Windows x86-64

tomotopy-0.8.0-cp38-cp38-win32.whl (2.7 MB view details)

Uploaded CPython 3.8Windows x86

tomotopy-0.8.0-cp38-cp38-manylinux2010_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

tomotopy-0.8.0-cp38-cp38-macosx_10_14_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

tomotopy-0.8.0-cp37-cp37m-win_amd64.whl (4.7 MB view details)

Uploaded CPython 3.7mWindows x86-64

tomotopy-0.8.0-cp37-cp37m-win32.whl (2.7 MB view details)

Uploaded CPython 3.7mWindows x86

tomotopy-0.8.0-cp37-cp37m-manylinux2010_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

tomotopy-0.8.0-cp37-cp37m-macosx_10_14_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

tomotopy-0.8.0-cp36-cp36m-win_amd64.whl (4.7 MB view details)

Uploaded CPython 3.6mWindows x86-64

tomotopy-0.8.0-cp36-cp36m-win32.whl (2.7 MB view details)

Uploaded CPython 3.6mWindows x86

tomotopy-0.8.0-cp36-cp36m-manylinux2010_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

tomotopy-0.8.0-cp36-cp36m-macosx_10_14_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.6mmacOS 10.14+ x86-64

tomotopy-0.8.0-cp35-cp35m-win_amd64.whl (4.7 MB view details)

Uploaded CPython 3.5mWindows x86-64

tomotopy-0.8.0-cp35-cp35m-win32.whl (2.7 MB view details)

Uploaded CPython 3.5mWindows x86

tomotopy-0.8.0-cp35-cp35m-manylinux2010_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.5mmanylinux: glibc 2.12+ x86-64

tomotopy-0.8.0-cp35-cp35m-macosx_10_14_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.5mmacOS 10.14+ x86-64

File details

Details for the file tomotopy-0.8.0.tar.gz.

File metadata

  • Download URL: tomotopy-0.8.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.9

File hashes

Hashes for tomotopy-0.8.0.tar.gz
Algorithm Hash digest
SHA256 5e2d533ff90f14cb31ad5375683e2dd49c50c44fd846890fc56d0086c0b3b941
MD5 061cf68f2a801f419cf2858abfacf541
BLAKE2b-256 7f56613b99c3dc65c9bd99dc5d429c491a317ef56f9928c48698261fd974eae1

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d7a701a09e9ed5037327b94bacda969c01cbb0b53c22bfd11a600526764c0124
MD5 cf9ea235d36097cbc363f7b6a29bed4c
BLAKE2b-256 9cd21e6b6a534ed745e01ed511b54d11f6d08dedf2bbd321da2c783a2fca233c

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 77c16e9597dd253a7f595a1842aaf24ef105e749526ff40d6ba8b3ccbd966969
MD5 a635daa419cc184cd9558e43dc6ce0f6
BLAKE2b-256 b2ead32f757840e24120c95a2a33c8e73b134b34eb1159391849e76cd3cedca1

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c8c74148e48ac321497bf3404766c805559e3253a445b0dfb54dff4c511a2fe9
MD5 b7cbd4e72ce311887f5ef18837e3ec95
BLAKE2b-256 0752527755f6390c27aa860a05b858af9f938e57e026a59aef5fa5441b06a9f5

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 10.8 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 77fd4c396d32d73d3894253e6dacd4dd74fcd0ac03f6e2cd67acef92bb17af93
MD5 b36288f57d445b2710713add52a5487b
BLAKE2b-256 7167532df00655c7cbf2ba43ca5f4180edf47ee9e63811ab8cc0f1e7df74a006

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for tomotopy-0.8.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 48bea6834e4f71018232c2f96f225b14870dbec06ff2f9a1d233697ddbb46394
MD5 9212928a99cc23df2cc3f40ff2c154f6
BLAKE2b-256 a8870bfd1ed1625cf0a77e5c70c3dff99d101c8c4e6aebe7ea90895205041969

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for tomotopy-0.8.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 7fe7bd049271352cab8887ca4d07ebb4ce3270d3ed632faae68ba74c9b4a25e2
MD5 8cf20c3405967ec15dfef7d7859d512b
BLAKE2b-256 4af8eefadb9bda0386bac2b6c629a1404a79af68f1e81caa954cbe59565e7e0b

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 22fa5f175fcd7c2fd4b004920b7a024943a29515de89048e997ac2f98072a7a5
MD5 3f195598bcaa0b98abb791adb3427286
BLAKE2b-256 0f55a00a422cae5d4340a050d0c41e228fc81d0a45867ea3d4ea2e79e3e2d633

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 10.8 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for tomotopy-0.8.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8e287f4ec9c6ef0cc62025b372e451fb368f4e334cd9cfe1782db4d34e81204d
MD5 440314dff04fa88d6b8846aaeed396f1
BLAKE2b-256 acc27a0c6a5723b870ade30a6deaa0ddc8529552ecfe1d5169a045ea604a96c5

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

File hashes

Hashes for tomotopy-0.8.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 e83ca9075367493814e83dd22f7523e7e975e2fd6920f139ce5e9e725e1dd2d6
MD5 ff6ae035785e3458a35b623f577350f2
BLAKE2b-256 21e17560d809770bc8dd26e38210d854a4bf4f7b0381c07750da69cb4845511f

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.8

File hashes

Hashes for tomotopy-0.8.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 90041f2c0857e7b01b5112cd18683b075c312391cbc39d7335fd9720fac7dbde
MD5 eb0d5211693aa7e7724e82a9c5c381d2
BLAKE2b-256 b6f5f7bcb2c12833f517071762f408a93f043e066b9e83cb17017a41ab084bcb

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3fad1fdfab1c35c7fabf42aa76462384d7d4c4b99a0aef6bc6467dc80c85b362
MD5 aaaf0d61db9f254011bcb759d8410680
BLAKE2b-256 be78eba818dab6a02beb4a4fdf1ff725753fdf218c09eee4f65995b6fbac1918

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 10.8 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.6.10

File hashes

Hashes for tomotopy-0.8.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ee5c164c04103c2fb6a13f80e7002a59949af71ca800714873c18cd369b3dd6e
MD5 6a7da18e7ca00138947dd9839f51f6db
BLAKE2b-256 1d0f2b4610b1cd9c6c6d65b808a71df0e996a38257473ab60b0dd19c6f9cea58

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 4.7 MB
  • 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.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.4

File hashes

Hashes for tomotopy-0.8.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 158fee1dbd0d794db158c55b560b2d9c5546281663bbf85a082874660c542393
MD5 8f6e14aa158b4f9188d035426504db92
BLAKE2b-256 f68634ed908dc986b00c1339649c87425d649bb7087f0a90b651d17854bd1ffa

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp35-cp35m-win32.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.4

File hashes

Hashes for tomotopy-0.8.0-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 34ca872278ef09c35763a6fbe03bc39de7b679a0c0665fa394aad5e047847a76
MD5 0bd8e314165f5aa2421ca9e29c198e61
BLAKE2b-256 5b983aad3da5e175a09b0b55ade2e49d60755f810bfc6c606dbe943e6b650400

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

File hashes

Hashes for tomotopy-0.8.0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 48e91f26be8cdc9f7e28916a24096c656a2fc41d1359eb41a9048d1c89ba64af
MD5 b538db431d96bff4fcfa4ed0645ed1bd
BLAKE2b-256 e37c852d46612f50dcb2c99b6605b94d38e414d3214899a81ee63194dbc7104d

See more details on using hashes here.

File details

Details for the file tomotopy-0.8.0-cp35-cp35m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.8.0-cp35-cp35m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 10.8 MB
  • Tags: CPython 3.5m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.5.9

File hashes

Hashes for tomotopy-0.8.0-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 68ba0d51e5604db0518cfc02685724251bcc2e6cc0657f154bdda07f76658499
MD5 062b7f2ac65cab8da292cb16290c83eb
BLAKE2b-256 22126e78e4f272438d55729bbb07d5685a1a9cf02f0a4fbeb0bdceec100da9e8

See more details on using hashes here.

Supported by

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