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.10.0.

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

Getting Started

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

$ pip install --upgrade pip
$ 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))

mdl.summary()

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.

Vocabulary controlling using CF and DF

CF(collection frequency) and DF(document frequency) are concepts used in information retreival, and each represents the total number of times the word appears in the corpus and the number of documents in which the word appears within the corpus, respectively. tomotopy provides these two measures under the parameters of min_cf and min_df to trim low frequency words when building the corpus.

For example, let’s say we have 5 documents #0 ~ #4 which are composed of the following words:

#0 : a, b, c, d, e, c
#1 : a, b, e, f
#2 : c, d, c
#3 : a, e, f, g
#4 : a, b, g

Both CF of a and CF of c are 4 because it appears 4 times in the entire corpus. But DF of a is 4 and DF of c is 2 because a appears in #0, #1, #3 and #4 and c only appears in #0 and #2. So if we trim low frequency words using min_cf=3, the result becomes follows:

(d, f and g are removed.)
#0 : a, b, c, e, c
#1 : a, b, e
#2 : c, c
#3 : a, e
#4 : a, b

However when min_df=3 the result is like :

(c, d, f and g are removed.)
#0 : a, b, e
#1 : a, b, e
#2 : (empty doc)
#3 : a, e
#4 : a, b

As we can see, min_df is a stronger criterion than min_cf. In performing topic modeling, words that appear repeatedly in only one document do not contribute to estimating the topic-word distribution. So, removing words with low df is a good way to reduce model size while preserving the results of the final model. In short, please prefer using min_df to min_cf.

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

Performance by Version

Performance changes by version are shown in the following graph. The time it takes to run the LDA model train with 1000 iteration was measured. (Docs: 11314, Vocab: 60382, Words: 2364724, Intel Xeon Gold 5120 @2.2GHz)

https://bab2min.github.io/tomotopy/images/lda-perf-t1.png https://bab2min.github.io/tomotopy/images/lda-perf-t4.png https://bab2min.github.io/tomotopy/images/lda-perf-t8.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/examples/ .

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.10.0 (2020-12-19)
    • The interface of tomotopy.utils.Corpus and of tomotopy.LDAModel.docs were unified. Now you can access the document in corpus with the same manner.

    • __getitem__ of tomotopy.utils.Corpus was improved. Not only indexing by int, but also by Iterable[int], slicing are supported. Also indexing by uid is supported.

    • New methods tomotopy.utils.Corpus.extract_ngrams and tomotopy.utils.Corpus.concat_ngrams were added. They extracts n-gram collocations using PMI and concatenates them into a single words.

    • A new method tomotopy.LDAModel.add_corpus was added, and tomotopy.LDAModel.infer can receive corpus as input.

    • A new module tomotopy.coherence was added. It provides the way to calculate coherence of the model.

    • A paramter window_size was added to tomotopy.label.FoRelevance.

    • An issue was fixed where NaN often occurs when training tomotopy.HDPModel.

    • Now Python3.9 is supported.

    • A dependency to py-cpuinfo was removed and the initializing of the module was improved.

  • 0.9.1 (2020-08-08)
    • Memory leaks of version 0.9.0 was fixed.

    • tomotopy.CTModel.summary() was fixed.

  • 0.9.0 (2020-08-04)
    • The tomotopy.LDAModel.summary() method, which prints human-readable summary of the model, has been added.

    • The random number generator of package has been replaced with [EigenRand]. It speeds up the random number generation and solves the result difference between platforms.

    • Due to above, even if seed is the same, the model training result may be different from the version before 0.9.0.

    • Fixed a training error in tomotopy.HDPModel.

    • tomotopy.DMRModel.alpha now shows Dirichlet prior of per-document topic distribution by metadata.

    • tomotopy.DTModel.get_count_by_topics() has been modified to return a 2-dimensional ndarray.

    • tomotopy.DTModel.alpha has been modified to return the same value as tomotopy.DTModel.get_alpha().

    • Fixed an issue where the metadata value could not be obtained for the document of tomotopy.GDMRModel.

    • tomotopy.HLDAModel.alpha now shows Dirichlet prior of per-document depth distribution.

    • tomotopy.LDAModel.global_step has been added.

    • tomotopy.MGLDAModel.get_count_by_topics() now returns the word count for both global and local topics.

    • tomotopy.PAModel.alpha, tomotopy.PAModel.subalpha, and tomotopy.PAModel.get_count_by_super_topic() have been added.

[EigenRand]: https://github.com/bab2min/EigenRand

  • 0.8.2 (2020-07-14)
    • New properties tomotopy.DTModel.num_timepoints and tomotopy.DTModel.num_docs_by_timepoint have been added.

    • A bug which causes different results with the different platform even if seeds were the same was partially fixed. As a result of this fix, now tomotopy in 32 bit yields different training results from earlier version.

  • 0.8.1 (2020-06-08)
    • A bug where tomotopy.LDAModel.used_vocabs returned an incorrect value was fixed.

    • Now tomotopy.CTModel.prior_cov returns a covariance matrix with shape [k, k].

    • Now tomotopy.CTModel.get_correlations with empty arguments returns a correlation matrix with shape [k, k].

  • 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.10.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

tomotopy-0.10.0-cp39-cp39-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.9Windows x86-64

tomotopy-0.10.0-cp39-cp39-win32.whl (3.0 MB view details)

Uploaded CPython 3.9Windows x86

tomotopy-0.10.0-cp39-cp39-manylinux2010_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

tomotopy-0.10.0-cp39-cp39-macosx_10_14_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

tomotopy-0.10.0-cp38-cp38-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.8Windows x86-64

tomotopy-0.10.0-cp38-cp38-win32.whl (3.0 MB view details)

Uploaded CPython 3.8Windows x86

tomotopy-0.10.0-cp38-cp38-manylinux2010_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

tomotopy-0.10.0-cp38-cp38-macosx_10_14_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

tomotopy-0.10.0-cp37-cp37m-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.7mWindows x86-64

tomotopy-0.10.0-cp37-cp37m-win32.whl (3.0 MB view details)

Uploaded CPython 3.7mWindows x86

tomotopy-0.10.0-cp37-cp37m-manylinux2010_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

tomotopy-0.10.0-cp37-cp37m-macosx_10_14_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

tomotopy-0.10.0-cp36-cp36m-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.6mWindows x86-64

tomotopy-0.10.0-cp36-cp36m-win32.whl (3.0 MB view details)

Uploaded CPython 3.6mWindows x86

tomotopy-0.10.0-cp36-cp36m-manylinux2010_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

tomotopy-0.10.0-cp36-cp36m-macosx_10_14_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.6mmacOS 10.14+ x86-64

tomotopy-0.10.0-cp35-cp35m-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.5mWindows x86-64

tomotopy-0.10.0-cp35-cp35m-win32.whl (3.0 MB view details)

Uploaded CPython 3.5mWindows x86

tomotopy-0.10.0-cp35-cp35m-manylinux2010_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.5mmanylinux: glibc 2.12+ x86-64

tomotopy-0.10.0-cp35-cp35m-macosx_10_14_x86_64.whl (12.1 MB view details)

Uploaded CPython 3.5mmacOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: tomotopy-0.10.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.5.10

File hashes

Hashes for tomotopy-0.10.0.tar.gz
Algorithm Hash digest
SHA256 a4dbdb869f92e6dbd7c2b401a991ec9d714e9092e4d72d75e97ec5da992a78ba
MD5 40472363e3b141abf82e05173948ab41
BLAKE2b-256 b26aa9ebd913bc0b22ace8ba3e3957abbfb2b40f3ffb8ddfd125c51e42ef0556

See more details on using hashes here.

File details

Details for the file tomotopy-0.10.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tomotopy-0.10.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for tomotopy-0.10.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 77b4fe9db9c0aecc0bfe8f5c18ff1608d1a68387ab2c2f7750aae21cc32167a5
MD5 cec262285a3ae1fd355381367c7bf7f3
BLAKE2b-256 ef01222a42668f9621533a1a5d9b858501a90d7b368076802f0b4012b2823eb6

See more details on using hashes here.

File details

Details for the file tomotopy-0.10.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: tomotopy-0.10.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for tomotopy-0.10.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 7cbb00fc27d939500e068a3b5a11bd4b995d1bae1b653beb92685a0f8892b5f1
MD5 b71a16a758a69086b4152c00cebbe3c0
BLAKE2b-256 0e82e6e0b5a6f3be46e9c87662158c9e3cea11cc5b4259ed8b0560785ff220eb

See more details on using hashes here.

File details

Details for the file tomotopy-0.10.0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.10.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1c7c301befc79c2cfedfeedc60177a71a21e47a6c178c183a6c8a446893c0086
MD5 5518f753909820c251d6be748f026f55
BLAKE2b-256 6ad52b20abb50ecde5d020205541ec3dc5f014c550db68976e690c5842027634

See more details on using hashes here.

File details

Details for the file tomotopy-0.10.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tomotopy-0.10.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for tomotopy-0.10.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2b63c762fd28255d87b2140495a3b012ee74f68e3ba077d9eab077c5bf039035
MD5 ccfd6deeb78d549c71bcb5f4549bd489
BLAKE2b-256 990b7e48cda77f42d13b43af6e03d8f7b436980ab5df9f206cbf7ff309d75f54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f7e35a5ecd3c4836b4e26b068de5e024e7b6d51c881f5adcf0ac574452e988bb
MD5 51b11cb8b7c6cccb4393d9d64fecedf5
BLAKE2b-256 c4a68cc7358e68e08b02360f71d1e0c32b5943dc53c1ce7d4f484dddeb0c97b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 87b831f0c3709112f608d4340c50fb210f21549c774fc5878c8f80e2591fb458
MD5 f54e42a403b7e55c542a44005f697d02
BLAKE2b-256 cda8dc40c8af31e4b3753c803a14c5404c96bbaa7ad7663aac5270ecfbaf1bbc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 58a77eb2ac1a4dd8173836e0b863ba583aacd306db016d3d4de89a07d94a5c1a
MD5 cf648d5db202cd20c76fff414946f23a
BLAKE2b-256 55e6bf2b7e19e3b8a804a4a228cf9b9ce0984cd3a545059311bc4d6b38a61b18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1c9ff78a112a5f73213feda3f0329cd648f0b888b2a53874ce147e2104b1c2ba
MD5 b652479d7b3fb3cb97f5caad4ffeb673
BLAKE2b-256 67d9155169a6c85c4f63ba69a78d5b658ec01b612ea400f3b9e1b89c4b743b07

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for tomotopy-0.10.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 cad3fe7df1b2110bbce3a79cb88f762f44cbaf2becf960a06f7eaa66fe136144
MD5 b741cb6a7d1246b8b23aacab943788c3
BLAKE2b-256 8566e3dd1615a04ddcd666a4b1724a720b4b8f8179efea2a79bcafc0bf4d1332

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for tomotopy-0.10.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 9395dff8797bf828e3e92551cded87ad6950b154fac00efa39f77421236166d4
MD5 a83fee0847563a74abecdcbe8fc1b9a5
BLAKE2b-256 64e46c55af17e325a2b614b85adf9baa86ab6398d3ce3a68e954edfd980fa152

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5586eb94771f693f3300fa164b27fecc037b5c9001859bd0bace8fc9ced7b848
MD5 0b0f2a99fdac263ff23b05a31ae7d3c6
BLAKE2b-256 4487c095bfc409691479a8052db50b8ce9f930859a5cbcd9016c97c864a60bde

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.9

File hashes

Hashes for tomotopy-0.10.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0c08ce56948d4fee4a0f4c3cb1cad7bea9b7692af7501f592521ba5bb95b9388
MD5 8c97e657bc0f11d0051ef0cfd8b15a30
BLAKE2b-256 2a973a64a4b1886b27f46bbdff22fe7e6893f39c6292dfd54d58073fb93a6a6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.8

File hashes

Hashes for tomotopy-0.10.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8a520e8472814b43addb845ecdbcb700c84c4a9abdd47dd9b98461a36cc5bbd8
MD5 788847416ff4c0190ac6134224ab9044
BLAKE2b-256 370654a7d862b0a4bba92d9b1af64ec536796738b15ce1b7ff09a3085b1dc2e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.8

File hashes

Hashes for tomotopy-0.10.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 ed93f9cd9e0cd2a0eaea87b6e1e6ddfa897d8b03e52001e6576e1096d3ab1a2f
MD5 3eec2b3579852a3d80d17f45a59125a9
BLAKE2b-256 6f60b3678a65220bbf2103761062db358f762ebde430d96c791ea2160557a964

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 324d7c1e6f57bd6d6b090c27204e62a371e4c54cfda0b406895d870689485ba8
MD5 fc53f1d5e0561a38085c33afdd81467e
BLAKE2b-256 4d9ed239dcefda84f801c2eb0467fa15adac53c095f177e7b892803dc4fb3129

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.12

File hashes

Hashes for tomotopy-0.10.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 73b0a7fb476abf0371dc26fa4d79155fab157190407cebe8909341a7998fc45b
MD5 a1ba73fcc26188ce0c7d54dce72fa7b1
BLAKE2b-256 05f2870ed0f9ea5cabea6d68b81b52a4658eea347d3687d734d1a947df5578f6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.5.4

File hashes

Hashes for tomotopy-0.10.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 e871d54aaf05bc7e2e81be475d362acdc7c246d64292533f75fa444953211e4c
MD5 c5d8619d52d9f82705a33bbd2b6730ca
BLAKE2b-256 8d20b46a6f132c948e585eaa926a3b553acfbafcbcd8606ba5e11d1fb0e333ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp35-cp35m-win32.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.5m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.5.4

File hashes

Hashes for tomotopy-0.10.0-cp35-cp35m-win32.whl
Algorithm Hash digest
SHA256 393a93289ceb30d0a64161cc0148c88a86364371ac0fe9dec27108aaedacaa46
MD5 19dc9a620a748622b4707ac5f43adde0
BLAKE2b-256 064b26118062ec849c534be9f8dfc6ffe7b30d3dbef636a565f39fd17e1e4130

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.6

File hashes

Hashes for tomotopy-0.10.0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cae0f2af697c8d30046477db14b99715863f9c3c49089ac3b84c23e73125a28e
MD5 ff260997d359865a51539282a0ef13eb
BLAKE2b-256 3a14aa422808519cf899deaa2cc1b4e43f46ef57c08e77917b6ccf9c76365aff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tomotopy-0.10.0-cp35-cp35m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.5m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.1 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.5.10

File hashes

Hashes for tomotopy-0.10.0-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a1c7ebcd1e2fe0ea8e12c77a58660bd49e112999baca1dd4e04ec39213eb103e
MD5 e7972e976cc5c1cfcb30c6b7bf4e2d3e
BLAKE2b-256 6664d9425d7a3c26313984e4a488dae967012a0dff06700da14294710ca869a4

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