libtfr


Namelibtfr JSON
Version 2.1.9 PyPI version JSON
download
home_pagehttps://github.com/melizalab/libtfr
SummaryCalculates multi-taper windowed and time-frequency reassignment spectrograms
upload_time2024-09-29 13:46:29
maintainerDan Meliza
docs_urlNone
authorDan Meliza
requires_python>=3.7
licenseGNU General Public License (GPL)
keywords
VCS
bugtrack_url
requirements Cython numpy pkgconfig
Travis-CI No Travis.
coveralls test coverage No coveralls.
            libtfr
======

|ProjectStatus|_ |Version|_ |BuildStatus|_ |License|_ |PythonVersions|_ |DOI|

.. |ProjectStatus| image:: https://www.repostatus.org/badges/latest/active.svg
.. _ProjectStatus: https://www.repostatus.org/#active

.. |Version| image:: https://img.shields.io/pypi/v/libtfr.svg
.. _Version: https://pypi.python.org/pypi/libtfr/

.. |BuildStatus| image:: https://github.com/melizalab/libtfr/actions/workflows/python-package.yml/badge.svg
.. _BuildStatus: https://github.com/melizalab/libtfr/actions/workflows/python-package.yml

.. |License| image:: https://img.shields.io/pypi/l/libtfr.svg
.. _License: https://opensource.org/license/gpl-2-0/

.. |PythonVersions| image:: https://img.shields.io/pypi/pyversions/libtfr.svg
.. _PythonVersions: https://pypi.python.org/pypi/libtfr/

.. |DOI| image:: https://zenodo.org/badge/1833187.svg
   :target: https://zenodo.org/badge/latestdoi/1833187

Libtfr is a library for calculating multi-taper time-frequency
reassignment (TFR) spectrograms. Time-frequency reassignment is a method
that makes use of the instantaneous frequency and phase values in a
spectrogram to ‘deconvolve’ the image, and can yield substantially
sharper spectrograms with better signal-noise resolution than
conventional windowed spectrograms (i.e. short-time Fourier transforms)
or multi-taper spectrograms (using the discrete prolate spherical
sequences).

The library will also calculate conventional windowed spectrograms and
multitaper spectrograms.

Libtfr has C and Python APIs. The Python package has been tested on
CPython 3.7-3.11 and PyPy 3.7-3.10.


Python package
--------------

To install from PyPI:

.. code:: bash

   pip install libtfr

Wheels are built for most versions of linux and macosx using
`cibuildwheel <https://github.com/pypa/cibuildwheel/>`__. These are
statically linked to generic LAPACK routines and a fairly old version of
fftw, so if speed is a concern, consider compiling yourself against
optimized libraries of your own following the instructions below.
Windows wheels with statically linked FFTW and LAPACK libraries have
kindly been developed by `carlkl <https://github.com/carlkl>`__, but
they very out of date now. Install with
``pip install -i https://pypi.anaconda.org/carlkl/simple libtfr``

Installing from source
~~~~~~~~~~~~~~~~~~~~~~

To build the python module, you’ll need to install some system
dependencies first. On Debian:

.. code:: bash

   sudo apt-get install libfftw3-dev liblapack-dev

On OS X with Macports:

.. code:: bash

   sudo port install fftw-3

To build and install the python module from source:

.. code:: bash

   pip install .

Use
~~~

To compute a time-frequency reassignment spectrogram in Python:

.. code:: python

   import libtfr
   nfft = 256
   Np = 201
   shift = 10
   K = 6
   tm = 6.0
   flock = 0.01
   tlock = 5

   # load signal of dimension (npoints,)
   signal = ...
   S = libtfr.tfr_spec(signal, nfft, shift, Np, K, tm, flock, tlock)

See below for more information on the parameters.

Mulitaper Spectral Analysis
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Libtfr can also calculate multitaper and standard windowed Fourier
transforms. For example, discrete prolate spherical sequences can be
used to obtain multiple independent estimates of spectral statistics
while maintaining optimal time-frequency tradeoffs (Prieto et al, 2007).
The Python interface for MT calculations is somewhat different:

.. code:: python

   import libtfr

   # load signal of dimension (npoints,)
   signal = ...

   # generate a transform object with size equal to signal length and 5 tapers
   D = libtfr.mfft_dpss(npoints, 3, 5)
   # complex windowed FFTs, one per taper
   Z = D.mtfft(signal)
   # power spectrum density estimate using adaptive method to average tapers
   P = D.mtpsd(signal)

   # generate a transform object with size 512 samples and 5 tapers for short-time analysis
   D = libtfr.mfft_dpss(512, 3, 5)
   # complex STFT with frame shift of 10 samples
   Z = D.mtstft(signal, 10)
   # spectrogram with frame shift of 10 samples
   P = D.mtspec(signal, 10)

   # generate a transform object with 200-sample hanning window padded to 256 samples
   from numpy import hanning
   D = libtfr.mfft_precalc(256, hanning(200))
   # spectrogram with frame shift of 10 samples
   P = D.mtspec(signal, 10)

C Library
---------

To build the C library you will also need to have
`scons <http://www.scons.org>`__ installed. You may need to edit the
SConstruct file to make sure it points to the correct LAPACK libraries.
To build the shared library:

::

   scons lib

To install the libraries and header (default to ``/usr/local/lib`` and
``/usr/local/include``):

::

   scons install

A small test program, *test_tfr*, can be built with ``scons test``. The
program generates a signal with sinusoidally modulated frequency and
then calculates a multitaper PSD, a multitaper spectrogram, and a
time-frequency reassigned spectrogram. The results are output in ASCII
format to ``tfr_in.dat``, ``tfr_out_psd.dat``, ``tfr_out_mtm.dat``, and
``tfr_out_tfr.dat``.

See ``src/test_tfr.c`` for an example of how to use the C API.

Documentation
-------------

The C header ``tfr.h`` and python module ``libtfr.pyx`` are both
extensively documented.

Algorithm and usage notes
-------------------------

The software was assembled from various MATLAB sources, including the
time-frequency toolkit, Xiao and Flandrin’s work on multitaper
reassignment, and code from Gardner and Magnasco.

The basic principle is to use reassignment to increase the precision of
the time-frequency localization, essentially by deconvolving the
spectrogram with the TF representation of the window, recovering the
center of mass of the spectrotemporal energy. Reassigned TFRs typically
show a ‘froth’ for noise, and strong narrow lines for coherent signals
like pure tones, chirps, and so forth. The use of multiple tapers
reinforces the coherent signals while averaging out the froth, giving a
very clean spectrogram with optimal precision and resolution properties.

Gardner & Magnasco (2006) calculate reassignment based on a different
algorithm from Xiao and Flandrin (2007). The latter involves 3 different
FFT operations on the signal windowed with the hermitian taper *h(t)*,
its derivative *h’(t)*, and its time product *t × h(t)*. The G&M
algorithm only uses two FFTs, on the signal windowed with a Gaussian and
its time derivative. If I understand their methods correctly, however,
this derivation is based on properties of the fourier transform of the
gaussian, and isn’t appropriate for window functions based on the
Hermitian tapers, which have more optimal distribution of energy over
the TF plane (i.e., it takes fewer Hermitian tapers than Gaussian tapers
to achieve the same quality spectrogram)

Therefore, the algorithm is mostly from X&F, though I include time and
frequency locking parameters from G&M, which specify how far energy is
allowed to be reassigned in the TF plane. Large displacements generally
arise from numerical errors, so this helps to sharpen the lines
somewhat. I also included the time/frequency interpolation from Prieto
et al (2007), which can be used to get higher precision (at the expense
of less averaging) from smaller analysis windows.

Some fiddling with parameters is necessary to get the best spectrograms
from a given sort of signal. Like the window size in an STFT, the taper
parameters control the time-frequency resolution. However, in the
reassignment spectrogram the precision (i.e. localization) is not
affected by the taper size, so the effects of taper size will generally
only be seen when two coherent signals are close to each other in time
or frequency. ``Nh`` controls the size of the tapers; one can also
adjust ``tm``, the time support of the tapers, but depending on the
number of tapers used, this shouldn’t get a whole lot smaller than 5.
Increased values of ``Nh`` result in improved narrowband resolution
(i.e. between pure tones) but closely spaced clicks can become smeared.
Decreasing ``Nh`` increases the resolution between broadband components
(i.e. clicks) but smears closely spaced narrowband components. The
effect of smearing can be ameliorated to some extent by adjusting the
frequency/time locking parameters.

The frequency zoom parameter can be used to speed up calculation quite a
bit. Since calculating the multitaper reassigned spectrogram takes
3xNtapers FFT operations, smaller FFTs are generally better. The
spectrogram can then be binned at a finer resolution during
reassignment. These two sets of parameters should generate fairly
similar results:

::

   nfft=512, shift=10, tm=6, Nh=257, zoomf=1, zoomt=1 (default)
   nfft=256, shift=10, tm=6, Nh=257, zoomf=2, zoomt=1

Increasing the order generally reduces the background ‘froth’, but
interference between closely spaced components may increase.

Additional improvements in resolution may be achievable averaging across
different window sizes, or by using other averaging methods (i.e. as in
Xiao and Flandrin 2007)

License
-------

libtfr was written by C Daniel Meliza and is licensed under the Gnu
Public License (GPL) version 2; see COPYING for details.

some code is adapted from chronux (http://www.chronux.org), by Partha
Mitra and Hemant Bokil, also licensed under GPL version 2

THE PROGRAMS ARE PROVIDED “AS IS” WITHOUT WARRANTY OF MERCANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE OR ANY OTHER WARRANTY, EXPRESS OR
IMPLIED. IN NO EVENT SHALL THE UNIVERSITY OF CHICAGO OR DR. MELIZA BE
LIABLE FOR ANY DIRECT OR CONSEQUENTIAL DAMAGES RESULTING FROM USE OF THE
PROGRAMS. THE USER BEARS THE ENTIRE RISK FOR USE OF THE PROGRAMS.

References
----------

-  Time-frequency toolkit: http://tftb.nongnu.org/
-  Xiao, J. & Flandrin, P. Multitaper Time-Frequency Reassignment for
   Nonstationary Spectrum Estimation and Chirp Enhancement Signal
   Processing, IEEE Transactions on, Signal Processing, IEEE
   Transactions on, 2007, 55, 2851-2860 code:
   http://perso.ens-lyon.fr/patrick.flandrin/multitfr.html
-  Gardner, T. J. & Magnasco, M. O. Sparse time-frequency
   representations. Proc. Natl. Acad. Sci. U S A, 2006, 103, 6094-6099
   code:
   http://web.mit.edu/tgardner/www/Downloads/Entries/2007/10/22_Blue_bird_day_files/ifdv.m
-  Prieto, G.A., Parker, R. L., Thomson D. J., Vernon, F. L., & Graham,
   R. L. Reducing the bias of multitaper spectrum estimates. Geophys. J.
   Int. 2007, doi: 10.1111/j.1365-246X.2007.03592.x.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/melizalab/libtfr",
    "name": "libtfr",
    "maintainer": "Dan Meliza",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "dan@meliza.org",
    "keywords": null,
    "author": "Dan Meliza",
    "author_email": "dan@meliza.org",
    "download_url": "https://files.pythonhosted.org/packages/d0/2a/911a3dedb4be1c2a081cacfbd98d888f252452d48ca130d54d0561bdaf2b/libtfr-2.1.9.tar.gz",
    "platform": null,
    "description": "libtfr\n======\n\n|ProjectStatus|_ |Version|_ |BuildStatus|_ |License|_ |PythonVersions|_ |DOI|\n\n.. |ProjectStatus| image:: https://www.repostatus.org/badges/latest/active.svg\n.. _ProjectStatus: https://www.repostatus.org/#active\n\n.. |Version| image:: https://img.shields.io/pypi/v/libtfr.svg\n.. _Version: https://pypi.python.org/pypi/libtfr/\n\n.. |BuildStatus| image:: https://github.com/melizalab/libtfr/actions/workflows/python-package.yml/badge.svg\n.. _BuildStatus: https://github.com/melizalab/libtfr/actions/workflows/python-package.yml\n\n.. |License| image:: https://img.shields.io/pypi/l/libtfr.svg\n.. _License: https://opensource.org/license/gpl-2-0/\n\n.. |PythonVersions| image:: https://img.shields.io/pypi/pyversions/libtfr.svg\n.. _PythonVersions: https://pypi.python.org/pypi/libtfr/\n\n.. |DOI| image:: https://zenodo.org/badge/1833187.svg\n   :target: https://zenodo.org/badge/latestdoi/1833187\n\nLibtfr is a library for calculating multi-taper time-frequency\nreassignment (TFR) spectrograms. Time-frequency reassignment is a method\nthat makes use of the instantaneous frequency and phase values in a\nspectrogram to \u2018deconvolve\u2019 the image, and can yield substantially\nsharper spectrograms with better signal-noise resolution than\nconventional windowed spectrograms (i.e.\u00a0short-time Fourier transforms)\nor multi-taper spectrograms (using the discrete prolate spherical\nsequences).\n\nThe library will also calculate conventional windowed spectrograms and\nmultitaper spectrograms.\n\nLibtfr has C and Python APIs. The Python package has been tested on\nCPython 3.7-3.11 and PyPy 3.7-3.10.\n\n\nPython package\n--------------\n\nTo install from PyPI:\n\n.. code:: bash\n\n   pip install libtfr\n\nWheels are built for most versions of linux and macosx using\n`cibuildwheel <https://github.com/pypa/cibuildwheel/>`__. These are\nstatically linked to generic LAPACK routines and a fairly old version of\nfftw, so if speed is a concern, consider compiling yourself against\noptimized libraries of your own following the instructions below.\nWindows wheels with statically linked FFTW and LAPACK libraries have\nkindly been developed by `carlkl <https://github.com/carlkl>`__, but\nthey very out of date now. Install with\n``pip install -i https://pypi.anaconda.org/carlkl/simple libtfr``\n\nInstalling from source\n~~~~~~~~~~~~~~~~~~~~~~\n\nTo build the python module, you\u2019ll need to install some system\ndependencies first. On Debian:\n\n.. code:: bash\n\n   sudo apt-get install libfftw3-dev liblapack-dev\n\nOn OS X with Macports:\n\n.. code:: bash\n\n   sudo port install fftw-3\n\nTo build and install the python module from source:\n\n.. code:: bash\n\n   pip install .\n\nUse\n~~~\n\nTo compute a time-frequency reassignment spectrogram in Python:\n\n.. code:: python\n\n   import libtfr\n   nfft = 256\n   Np = 201\n   shift = 10\n   K = 6\n   tm = 6.0\n   flock = 0.01\n   tlock = 5\n\n   # load signal of dimension (npoints,)\n   signal = ...\n   S = libtfr.tfr_spec(signal, nfft, shift, Np, K, tm, flock, tlock)\n\nSee below for more information on the parameters.\n\nMulitaper Spectral Analysis\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nLibtfr can also calculate multitaper and standard windowed Fourier\ntransforms. For example, discrete prolate spherical sequences can be\nused to obtain multiple independent estimates of spectral statistics\nwhile maintaining optimal time-frequency tradeoffs (Prieto et al, 2007).\nThe Python interface for MT calculations is somewhat different:\n\n.. code:: python\n\n   import libtfr\n\n   # load signal of dimension (npoints,)\n   signal = ...\n\n   # generate a transform object with size equal to signal length and 5 tapers\n   D = libtfr.mfft_dpss(npoints, 3, 5)\n   # complex windowed FFTs, one per taper\n   Z = D.mtfft(signal)\n   # power spectrum density estimate using adaptive method to average tapers\n   P = D.mtpsd(signal)\n\n   # generate a transform object with size 512 samples and 5 tapers for short-time analysis\n   D = libtfr.mfft_dpss(512, 3, 5)\n   # complex STFT with frame shift of 10 samples\n   Z = D.mtstft(signal, 10)\n   # spectrogram with frame shift of 10 samples\n   P = D.mtspec(signal, 10)\n\n   # generate a transform object with 200-sample hanning window padded to 256 samples\n   from numpy import hanning\n   D = libtfr.mfft_precalc(256, hanning(200))\n   # spectrogram with frame shift of 10 samples\n   P = D.mtspec(signal, 10)\n\nC Library\n---------\n\nTo build the C library you will also need to have\n`scons <http://www.scons.org>`__ installed. You may need to edit the\nSConstruct file to make sure it points to the correct LAPACK libraries.\nTo build the shared library:\n\n::\n\n   scons lib\n\nTo install the libraries and header (default to ``/usr/local/lib`` and\n``/usr/local/include``):\n\n::\n\n   scons install\n\nA small test program, *test_tfr*, can be built with ``scons test``. The\nprogram generates a signal with sinusoidally modulated frequency and\nthen calculates a multitaper PSD, a multitaper spectrogram, and a\ntime-frequency reassigned spectrogram. The results are output in ASCII\nformat to ``tfr_in.dat``, ``tfr_out_psd.dat``, ``tfr_out_mtm.dat``, and\n``tfr_out_tfr.dat``.\n\nSee ``src/test_tfr.c`` for an example of how to use the C API.\n\nDocumentation\n-------------\n\nThe C header ``tfr.h`` and python module ``libtfr.pyx`` are both\nextensively documented.\n\nAlgorithm and usage notes\n-------------------------\n\nThe software was assembled from various MATLAB sources, including the\ntime-frequency toolkit, Xiao and Flandrin\u2019s work on multitaper\nreassignment, and code from Gardner and Magnasco.\n\nThe basic principle is to use reassignment to increase the precision of\nthe time-frequency localization, essentially by deconvolving the\nspectrogram with the TF representation of the window, recovering the\ncenter of mass of the spectrotemporal energy. Reassigned TFRs typically\nshow a \u2018froth\u2019 for noise, and strong narrow lines for coherent signals\nlike pure tones, chirps, and so forth. The use of multiple tapers\nreinforces the coherent signals while averaging out the froth, giving a\nvery clean spectrogram with optimal precision and resolution properties.\n\nGardner & Magnasco (2006) calculate reassignment based on a different\nalgorithm from Xiao and Flandrin (2007). The latter involves 3 different\nFFT operations on the signal windowed with the hermitian taper *h(t)*,\nits derivative *h\u2019(t)*, and its time product *t \u00d7 h(t)*. The G&M\nalgorithm only uses two FFTs, on the signal windowed with a Gaussian and\nits time derivative. If I understand their methods correctly, however,\nthis derivation is based on properties of the fourier transform of the\ngaussian, and isn\u2019t appropriate for window functions based on the\nHermitian tapers, which have more optimal distribution of energy over\nthe TF plane (i.e., it takes fewer Hermitian tapers than Gaussian tapers\nto achieve the same quality spectrogram)\n\nTherefore, the algorithm is mostly from X&F, though I include time and\nfrequency locking parameters from G&M, which specify how far energy is\nallowed to be reassigned in the TF plane. Large displacements generally\narise from numerical errors, so this helps to sharpen the lines\nsomewhat. I also included the time/frequency interpolation from Prieto\net al (2007), which can be used to get higher precision (at the expense\nof less averaging) from smaller analysis windows.\n\nSome fiddling with parameters is necessary to get the best spectrograms\nfrom a given sort of signal. Like the window size in an STFT, the taper\nparameters control the time-frequency resolution. However, in the\nreassignment spectrogram the precision (i.e.\u00a0localization) is not\naffected by the taper size, so the effects of taper size will generally\nonly be seen when two coherent signals are close to each other in time\nor frequency. ``Nh`` controls the size of the tapers; one can also\nadjust ``tm``, the time support of the tapers, but depending on the\nnumber of tapers used, this shouldn\u2019t get a whole lot smaller than 5.\nIncreased values of ``Nh`` result in improved narrowband resolution\n(i.e.\u00a0between pure tones) but closely spaced clicks can become smeared.\nDecreasing ``Nh`` increases the resolution between broadband components\n(i.e.\u00a0clicks) but smears closely spaced narrowband components. The\neffect of smearing can be ameliorated to some extent by adjusting the\nfrequency/time locking parameters.\n\nThe frequency zoom parameter can be used to speed up calculation quite a\nbit. Since calculating the multitaper reassigned spectrogram takes\n3xNtapers FFT operations, smaller FFTs are generally better. The\nspectrogram can then be binned at a finer resolution during\nreassignment. These two sets of parameters should generate fairly\nsimilar results:\n\n::\n\n   nfft=512, shift=10, tm=6, Nh=257, zoomf=1, zoomt=1 (default)\n   nfft=256, shift=10, tm=6, Nh=257, zoomf=2, zoomt=1\n\nIncreasing the order generally reduces the background \u2018froth\u2019, but\ninterference between closely spaced components may increase.\n\nAdditional improvements in resolution may be achievable averaging across\ndifferent window sizes, or by using other averaging methods (i.e.\u00a0as in\nXiao and Flandrin 2007)\n\nLicense\n-------\n\nlibtfr was written by C Daniel Meliza and is licensed under the Gnu\nPublic License (GPL) version 2; see COPYING for details.\n\nsome code is adapted from chronux (http://www.chronux.org), by Partha\nMitra and Hemant Bokil, also licensed under GPL version 2\n\nTHE PROGRAMS ARE PROVIDED \u201cAS IS\u201d WITHOUT WARRANTY OF MERCANTABILITY OR\nFITNESS FOR A PARTICULAR PURPOSE OR ANY OTHER WARRANTY, EXPRESS OR\nIMPLIED. IN NO EVENT SHALL THE UNIVERSITY OF CHICAGO OR DR. MELIZA BE\nLIABLE FOR ANY DIRECT OR CONSEQUENTIAL DAMAGES RESULTING FROM USE OF THE\nPROGRAMS. THE USER BEARS THE ENTIRE RISK FOR USE OF THE PROGRAMS.\n\nReferences\n----------\n\n-  Time-frequency toolkit: http://tftb.nongnu.org/\n-  Xiao, J. & Flandrin, P. Multitaper Time-Frequency Reassignment for\n   Nonstationary Spectrum Estimation and Chirp Enhancement Signal\n   Processing, IEEE Transactions on, Signal Processing, IEEE\n   Transactions on, 2007, 55, 2851-2860 code:\n   http://perso.ens-lyon.fr/patrick.flandrin/multitfr.html\n-  Gardner, T. J. & Magnasco, M. O. Sparse time-frequency\n   representations. Proc. Natl. Acad. Sci. U S A, 2006, 103, 6094-6099\n   code:\n   http://web.mit.edu/tgardner/www/Downloads/Entries/2007/10/22_Blue_bird_day_files/ifdv.m\n-  Prieto, G.A., Parker, R. L., Thomson D. J., Vernon, F. L., & Graham,\n   R. L. Reducing the bias of multitaper spectrum estimates. Geophys. J.\n   Int. 2007, doi: 10.1111/j.1365-246X.2007.03592.x.\n\n",
    "bugtrack_url": null,
    "license": "GNU General Public License (GPL)",
    "summary": "Calculates multi-taper windowed and time-frequency reassignment spectrograms",
    "version": "2.1.9",
    "project_urls": {
        "Homepage": "https://github.com/melizalab/libtfr"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5cbf55259321e6a03b1d135ce0335ff5cfe6dadea00d0919fb5c139829894e5e",
                "md5": "8ff353bd2e6095d44d265bf3223fe788",
                "sha256": "ea36e7aceefa439f39bcb7933176d7f95a74da89f87e14349d4f5fd7c6190241"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8ff353bd2e6095d44d265bf3223fe788",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 639233,
            "upload_time": "2024-09-29T13:45:04",
            "upload_time_iso_8601": "2024-09-29T13:45:04.770602Z",
            "url": "https://files.pythonhosted.org/packages/5c/bf/55259321e6a03b1d135ce0335ff5cfe6dadea00d0919fb5c139829894e5e/libtfr-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3fe03e79a5bf5d318cc6b23432106c4c475de35806009204bc9156dd721a5942",
                "md5": "5e79c1bee06bae8a928fb5b1f667f947",
                "sha256": "81ae979a3bf8f483ba0d1936cc0995dcd856de3a17a306b3cc26a28f06d37497"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5e79c1bee06bae8a928fb5b1f667f947",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 556162,
            "upload_time": "2024-09-29T13:45:06",
            "upload_time_iso_8601": "2024-09-29T13:45:06.523940Z",
            "url": "https://files.pythonhosted.org/packages/3f/e0/3e79a5bf5d318cc6b23432106c4c475de35806009204bc9156dd721a5942/libtfr-2.1.9-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bd1ab961e3875ffd6a9c9e44fba17566203e9662613b0dbd6e51b24741988eaa",
                "md5": "434038004ad76b4538a2030362f599df",
                "sha256": "5c7638b0d6ba4c068cec22463444491c56a5c96f70fd6cd7e9a94d1a067b492b"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "434038004ad76b4538a2030362f599df",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4547572,
            "upload_time": "2024-09-29T13:45:08",
            "upload_time_iso_8601": "2024-09-29T13:45:08.444513Z",
            "url": "https://files.pythonhosted.org/packages/bd/1a/b961e3875ffd6a9c9e44fba17566203e9662613b0dbd6e51b24741988eaa/libtfr-2.1.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22aebff06949e9a549055d9613c03f663bf3a7c81204af4df8a7b9956d5513c2",
                "md5": "9e0eaebde965e2b9002346cbc5969727",
                "sha256": "3a756f63371c3afbf1a955606efe49dcd63fb8af5193bea2247fe56c04d7b13d"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9e0eaebde965e2b9002346cbc5969727",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 4729611,
            "upload_time": "2024-09-29T13:45:09",
            "upload_time_iso_8601": "2024-09-29T13:45:09.799569Z",
            "url": "https://files.pythonhosted.org/packages/22/ae/bff06949e9a549055d9613c03f663bf3a7c81204af4df8a7b9956d5513c2/libtfr-2.1.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9dd18cc5dfa078f5820fbc6ba97b7c5e0c92afc30f9951dd6605670e6a05a8a",
                "md5": "05b79eed86abf6a35d95352d5f7acf40",
                "sha256": "50f55c06cd0619a9b37bc11584ea6274da2ba394e8650415f748b60a9ab4b15c"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "05b79eed86abf6a35d95352d5f7acf40",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 6673793,
            "upload_time": "2024-09-29T13:45:11",
            "upload_time_iso_8601": "2024-09-29T13:45:11.887941Z",
            "url": "https://files.pythonhosted.org/packages/e9/dd/18cc5dfa078f5820fbc6ba97b7c5e0c92afc30f9951dd6605670e6a05a8a/libtfr-2.1.9-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86ea70d58819a6ccdec010e1502edeca4e45c944715f03ac5f6c6e9b23e221fc",
                "md5": "d112c0a23873ecb2f3d46e95acadf2f4",
                "sha256": "b059bfcb45667e6e850142025c0ac6c7c9356f943e4540ac5a1943e0d51d7d60"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d112c0a23873ecb2f3d46e95acadf2f4",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 6922508,
            "upload_time": "2024-09-29T13:45:13",
            "upload_time_iso_8601": "2024-09-29T13:45:13.517484Z",
            "url": "https://files.pythonhosted.org/packages/86/ea/70d58819a6ccdec010e1502edeca4e45c944715f03ac5f6c6e9b23e221fc/libtfr-2.1.9-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81c362c340bb0c30e799ee5dc8b0c09905585c701427ada5e3d1126c35960fe7",
                "md5": "612634ce3e9660dcd67fa7b67aeb6fff",
                "sha256": "706ac66ab25ccebf5274587b6cc8b694aeb8431d9de27fce9b51dba21a743701"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "612634ce3e9660dcd67fa7b67aeb6fff",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 639679,
            "upload_time": "2024-09-29T13:45:15",
            "upload_time_iso_8601": "2024-09-29T13:45:15.098254Z",
            "url": "https://files.pythonhosted.org/packages/81/c3/62c340bb0c30e799ee5dc8b0c09905585c701427ada5e3d1126c35960fe7/libtfr-2.1.9-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2614a6c6c87a088409c4e403fde39f5ff446163924f0b6ff5b74e95237ee85e4",
                "md5": "4ab763835e6001cd076cb1cf76518ed3",
                "sha256": "0c9bf3a75405fd4ee0739e4486e090f9785e0fc385581278a80861ab09199001"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4ab763835e6001cd076cb1cf76518ed3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 556598,
            "upload_time": "2024-09-29T13:45:16",
            "upload_time_iso_8601": "2024-09-29T13:45:16.717154Z",
            "url": "https://files.pythonhosted.org/packages/26/14/a6c6c87a088409c4e403fde39f5ff446163924f0b6ff5b74e95237ee85e4/libtfr-2.1.9-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a58a2c1857cf65e479c003d206be13f1022c680889a91f4c492559bee221629",
                "md5": "0d1cb9368ca64c52e633c070b2b019eb",
                "sha256": "208bb2ca2441d54e39c147d94ae2a78820fa12ccebf9bb877d06b6b697006b0f"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "0d1cb9368ca64c52e633c070b2b019eb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4611209,
            "upload_time": "2024-09-29T13:45:18",
            "upload_time_iso_8601": "2024-09-29T13:45:18.001953Z",
            "url": "https://files.pythonhosted.org/packages/6a/58/a2c1857cf65e479c003d206be13f1022c680889a91f4c492559bee221629/libtfr-2.1.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "961fb93ae04df627264406da5f52ba1fa3d4cd0da07d7a0b78eed9559beedaae",
                "md5": "9d9cd06ab1ebacf93c548f34ecd7da57",
                "sha256": "48b32580bff1cbe678fac507aa8dfd0d001f55e50eee851d3703ca163a2fb40f"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9d9cd06ab1ebacf93c548f34ecd7da57",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 4799717,
            "upload_time": "2024-09-29T13:45:19",
            "upload_time_iso_8601": "2024-09-29T13:45:19.534389Z",
            "url": "https://files.pythonhosted.org/packages/96/1f/b93ae04df627264406da5f52ba1fa3d4cd0da07d7a0b78eed9559beedaae/libtfr-2.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4cd513971580f7ce443c029534b4811a7e4d45225fdadcb618ad35e1d8a69ed0",
                "md5": "af32172d410d11ad9a973010c0aa93d3",
                "sha256": "9da708aef9b46a62def1dea4fa224cf1c046149aa65c89fdd74d1fb43586becb"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "af32172d410d11ad9a973010c0aa93d3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 6736529,
            "upload_time": "2024-09-29T13:45:21",
            "upload_time_iso_8601": "2024-09-29T13:45:21.389288Z",
            "url": "https://files.pythonhosted.org/packages/4c/d5/13971580f7ce443c029534b4811a7e4d45225fdadcb618ad35e1d8a69ed0/libtfr-2.1.9-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "519ef1bbd72a8480209615049578f285d79b4fb8952510231025b25998720ad9",
                "md5": "ff1534e0f6fc8e069465ccf1c8650bef",
                "sha256": "2a45a301cd703329b7c6cf92897afb83c0edbc71d8406005bfb1f75d52b0c1dd"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ff1534e0f6fc8e069465ccf1c8650bef",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 6994822,
            "upload_time": "2024-09-29T13:45:23",
            "upload_time_iso_8601": "2024-09-29T13:45:23.290799Z",
            "url": "https://files.pythonhosted.org/packages/51/9e/f1bbd72a8480209615049578f285d79b4fb8952510231025b25998720ad9/libtfr-2.1.9-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01b4c8c7f2bba2fce3a1a9103eb1ed944d8256dee766701bed157eaf15db188d",
                "md5": "6904e30d055d299750b009950519bf2b",
                "sha256": "bf1f0a06ab76a410985227a99092ae85d614c4a5fc92ec2ace82a47f82ff16cd"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6904e30d055d299750b009950519bf2b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 637633,
            "upload_time": "2024-09-29T13:45:24",
            "upload_time_iso_8601": "2024-09-29T13:45:24.648047Z",
            "url": "https://files.pythonhosted.org/packages/01/b4/c8c7f2bba2fce3a1a9103eb1ed944d8256dee766701bed157eaf15db188d/libtfr-2.1.9-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9310881e900dd47a1dde2d84beac255c5d3ee6db1bb53591831f67923f99fc85",
                "md5": "be63677248537a60a3bebedf5a04a0da",
                "sha256": "4b466323f317826db8d93581d9ec42ebc13a24bab3a663f58793228bcd85368e"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "be63677248537a60a3bebedf5a04a0da",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 556953,
            "upload_time": "2024-09-29T13:45:25",
            "upload_time_iso_8601": "2024-09-29T13:45:25.804266Z",
            "url": "https://files.pythonhosted.org/packages/93/10/881e900dd47a1dde2d84beac255c5d3ee6db1bb53591831f67923f99fc85/libtfr-2.1.9-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d742dc0c48366955c968ad5ccf618fbe54cf446d2fb80869db8eb1aeb2b01a0",
                "md5": "f4d2e1ca003746ae9ef353032551313c",
                "sha256": "8d2cf76b10ca873b76cc58d5cc10528adaceb5a970a0cf49822e12e186e25e89"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f4d2e1ca003746ae9ef353032551313c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 4577162,
            "upload_time": "2024-09-29T13:45:27",
            "upload_time_iso_8601": "2024-09-29T13:45:27.452892Z",
            "url": "https://files.pythonhosted.org/packages/6d/74/2dc0c48366955c968ad5ccf618fbe54cf446d2fb80869db8eb1aeb2b01a0/libtfr-2.1.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a81858e03bffb8d6f0050b4d3bb2952f6fc27dcd83bd1dd356cf18bea401502b",
                "md5": "eebe0d0c4ab8f443332dfe12e3c129fc",
                "sha256": "7558e260c1a064794de306f1bd38615102b1b6ada53249f27f494ae62bdc4dc3"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eebe0d0c4ab8f443332dfe12e3c129fc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 4760609,
            "upload_time": "2024-09-29T13:45:29",
            "upload_time_iso_8601": "2024-09-29T13:45:29.246605Z",
            "url": "https://files.pythonhosted.org/packages/a8/18/58e03bffb8d6f0050b4d3bb2952f6fc27dcd83bd1dd356cf18bea401502b/libtfr-2.1.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e86671f9a03f984b62dca3c100973b3be7643a704c0b8bd8169289b38aae393a",
                "md5": "67a463fc480baac0536915297b83e968",
                "sha256": "323e255a6350b42d6b2213aa7ee59f927b39965fa3da420fded4501efbc7cfd6"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "67a463fc480baac0536915297b83e968",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 6703271,
            "upload_time": "2024-09-29T13:45:30",
            "upload_time_iso_8601": "2024-09-29T13:45:30.802017Z",
            "url": "https://files.pythonhosted.org/packages/e8/66/71f9a03f984b62dca3c100973b3be7643a704c0b8bd8169289b38aae393a/libtfr-2.1.9-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "92f59c93268d665d84293ff6b0aeafe0b3d88e33f40e383a7a93182dbf27c368",
                "md5": "758bd814d53e0b9fecfc896671704b3b",
                "sha256": "0bdfc4c3dd26e115bebe537a193133c8205060b267af85cc2ff29340f48c67c0"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "758bd814d53e0b9fecfc896671704b3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 6955174,
            "upload_time": "2024-09-29T13:45:32",
            "upload_time_iso_8601": "2024-09-29T13:45:32.902055Z",
            "url": "https://files.pythonhosted.org/packages/92/f5/9c93268d665d84293ff6b0aeafe0b3d88e33f40e383a7a93182dbf27c368/libtfr-2.1.9-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "938a92ecb8aff684b1f63b74221757c78e09e7b4b15f0e7fb81d034ca7126a07",
                "md5": "ddcd2239e867a8a86baf37f5ab32f20a",
                "sha256": "775326fd8ed069eb604c57dc8a164017070100068603d63b9a43d9932eaf665e"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ddcd2239e867a8a86baf37f5ab32f20a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 635055,
            "upload_time": "2024-09-29T13:45:34",
            "upload_time_iso_8601": "2024-09-29T13:45:34.583626Z",
            "url": "https://files.pythonhosted.org/packages/93/8a/92ecb8aff684b1f63b74221757c78e09e7b4b15f0e7fb81d034ca7126a07/libtfr-2.1.9-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "799da908297c2570313a054aa7d64820574b7eac992ad3039336700cb1a0dff3",
                "md5": "cf02dcbf6afd69ddb609090eb37f71a7",
                "sha256": "ba47c4960be532cbefb303c8ee872240dfc7ca939b145a918ff416dc8ffad91b"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "cf02dcbf6afd69ddb609090eb37f71a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 555382,
            "upload_time": "2024-09-29T13:45:35",
            "upload_time_iso_8601": "2024-09-29T13:45:35.803781Z",
            "url": "https://files.pythonhosted.org/packages/79/9d/a908297c2570313a054aa7d64820574b7eac992ad3039336700cb1a0dff3/libtfr-2.1.9-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1c701a1f1f39325ca447807aaf2a737aa45e67591a3acb18bf74a3ab2ba6f1c5",
                "md5": "3c542ab4576ab86b0903e0f891de9ed6",
                "sha256": "b32dc4d3e1c40a0cc05db2ff0264d9d177bbce706564e05626fa240f56db8fc8"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "3c542ab4576ab86b0903e0f891de9ed6",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 4571192,
            "upload_time": "2024-09-29T13:45:37",
            "upload_time_iso_8601": "2024-09-29T13:45:37.320990Z",
            "url": "https://files.pythonhosted.org/packages/1c/70/1a1f1f39325ca447807aaf2a737aa45e67591a3acb18bf74a3ab2ba6f1c5/libtfr-2.1.9-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12e24b2979af1e218529c0b089ff56b065fe0f364479cfa7f1d77cc96bab79ba",
                "md5": "fca675a71d12a3ee3f66d51206758087",
                "sha256": "a14d41b606cc82c884f7af094babfb79477b31a814564f9e5e07e1ff4db48b58"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fca675a71d12a3ee3f66d51206758087",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 4758826,
            "upload_time": "2024-09-29T13:45:39",
            "upload_time_iso_8601": "2024-09-29T13:45:39.437686Z",
            "url": "https://files.pythonhosted.org/packages/12/e2/4b2979af1e218529c0b089ff56b065fe0f364479cfa7f1d77cc96bab79ba/libtfr-2.1.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "15b48cceed44679dcb8d3455aaf1b6d6baa8688a3c27301e3a78187e0d240be2",
                "md5": "a86164d4de2f729efe453d6ba17fb604",
                "sha256": "fe834e57551c301355892276fafc6fcc520f7f91cf16248481d2be9d737f4600"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "a86164d4de2f729efe453d6ba17fb604",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 6700422,
            "upload_time": "2024-09-29T13:45:41",
            "upload_time_iso_8601": "2024-09-29T13:45:41.362353Z",
            "url": "https://files.pythonhosted.org/packages/15/b4/8cceed44679dcb8d3455aaf1b6d6baa8688a3c27301e3a78187e0d240be2/libtfr-2.1.9-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d7ac709cd6c4aab850f43915d1618d65c42875a0c3a2e5a9215fd5b55dbcb42",
                "md5": "3ad00fb5a2fa9358b1a9de96bc6cc50c",
                "sha256": "9e15bf3f9981c57a6041329a61d1925dc6b2a719fafb6bf9ad1139ec630230e3"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3ad00fb5a2fa9358b1a9de96bc6cc50c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 6953866,
            "upload_time": "2024-09-29T13:45:43",
            "upload_time_iso_8601": "2024-09-29T13:45:43.309786Z",
            "url": "https://files.pythonhosted.org/packages/6d/7a/c709cd6c4aab850f43915d1618d65c42875a0c3a2e5a9215fd5b55dbcb42/libtfr-2.1.9-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3458f432f29c6f232a3d32b0743f9ed52eafb5f8f24c02099fc3f92732db1e85",
                "md5": "aec977939880cf9e30f58e61b035e9d2",
                "sha256": "b6954c51e0627dda2e56375774408bed604307697eed10b7ee0fefc3ac744bb9"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aec977939880cf9e30f58e61b035e9d2",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 636095,
            "upload_time": "2024-09-29T13:45:44",
            "upload_time_iso_8601": "2024-09-29T13:45:44.985315Z",
            "url": "https://files.pythonhosted.org/packages/34/58/f432f29c6f232a3d32b0743f9ed52eafb5f8f24c02099fc3f92732db1e85/libtfr-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd4f849cb27f68391de226fa34ce394fba3b48fb05d1a1e004e911754325315b",
                "md5": "66fd7247b99c84a19d8ff3faca07bccd",
                "sha256": "b9b230b0d45a2c2ff8ced2ae4bdbfa2b1d84e6393a1b255043f25d05fa33b2c3"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "66fd7247b99c84a19d8ff3faca07bccd",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 4492855,
            "upload_time": "2024-09-29T13:45:46",
            "upload_time_iso_8601": "2024-09-29T13:45:46.173146Z",
            "url": "https://files.pythonhosted.org/packages/dd/4f/849cb27f68391de226fa34ce394fba3b48fb05d1a1e004e911754325315b/libtfr-2.1.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6216f80f7bcd97778b48a5d9dcc9710c72efb38e3b5581553608ec72e6d7afce",
                "md5": "427e7ce8aa1f5a13ddd2ca5430eba372",
                "sha256": "43e7fa915a2da1e615b3775d6783a54530c7e7c213a25558e2ee8974087157f4"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "427e7ce8aa1f5a13ddd2ca5430eba372",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 4680071,
            "upload_time": "2024-09-29T13:45:47",
            "upload_time_iso_8601": "2024-09-29T13:45:47.463097Z",
            "url": "https://files.pythonhosted.org/packages/62/16/f80f7bcd97778b48a5d9dcc9710c72efb38e3b5581553608ec72e6d7afce/libtfr-2.1.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "80d7050e9527a0bd78f79dc74516f1737cb01def78c8ca1d3ff27087c5d7e1a5",
                "md5": "94df250246b2c46642e6c378538bdcd8",
                "sha256": "17bdd8a09c703bef1a28aaae27316186140b6c688cdd99c9f6364e1a351b8c36"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp37-cp37m-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "94df250246b2c46642e6c378538bdcd8",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 6621537,
            "upload_time": "2024-09-29T13:45:48",
            "upload_time_iso_8601": "2024-09-29T13:45:48.881676Z",
            "url": "https://files.pythonhosted.org/packages/80/d7/050e9527a0bd78f79dc74516f1737cb01def78c8ca1d3ff27087c5d7e1a5/libtfr-2.1.9-cp37-cp37m-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a3161a9659e2b836584fa10c605f36694508fc395ffcf2fcc2b505b0b3835d4",
                "md5": "5b5c4e29c6a68306da2727d2fc297a78",
                "sha256": "098edd8a4771343cb24f633bc802a118ff63fd2c8945f5367c1b7f26dbaf7bb9"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp37-cp37m-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5b5c4e29c6a68306da2727d2fc297a78",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 6874222,
            "upload_time": "2024-09-29T13:45:50",
            "upload_time_iso_8601": "2024-09-29T13:45:50.417577Z",
            "url": "https://files.pythonhosted.org/packages/0a/31/61a9659e2b836584fa10c605f36694508fc395ffcf2fcc2b505b0b3835d4/libtfr-2.1.9-cp37-cp37m-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14a36f76eaab6d4169153549645c7ae1f62d49ac8d12bf2c669c7052fbf1cb44",
                "md5": "18b5f33d240b37994e042a87a6e98003",
                "sha256": "16eafc50ed99af650e05a760cb3024b6f5adb4cd5f3993116005fa74e2662c9e"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "18b5f33d240b37994e042a87a6e98003",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 638104,
            "upload_time": "2024-09-29T13:45:51",
            "upload_time_iso_8601": "2024-09-29T13:45:51.867349Z",
            "url": "https://files.pythonhosted.org/packages/14/a3/6f76eaab6d4169153549645c7ae1f62d49ac8d12bf2c669c7052fbf1cb44/libtfr-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2b78a9fa46c9b5d7892b23a0d1296ae2159a376cb6e403848d0f39de7b91faa3",
                "md5": "4fc0dd6e23c7968e17cf2617794e4c25",
                "sha256": "45b42a8abe5633f145d26bfb03043e068b7b86d945d9409797cfc217b3f3d1c5"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4fc0dd6e23c7968e17cf2617794e4c25",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 555526,
            "upload_time": "2024-09-29T13:45:53",
            "upload_time_iso_8601": "2024-09-29T13:45:53.293643Z",
            "url": "https://files.pythonhosted.org/packages/2b/78/a9fa46c9b5d7892b23a0d1296ae2159a376cb6e403848d0f39de7b91faa3/libtfr-2.1.9-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f16088c0606c55fe0e53e5ee686d287a7e562719b9acf45e79bc486878dfebd",
                "md5": "60bc5a0e644339ed1bd780ae8ef3a5db",
                "sha256": "4a936cfcd31a7ede98015ef290c9c2382ac5cafb88635aee9b9ddc1b412f1d6b"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "60bc5a0e644339ed1bd780ae8ef3a5db",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4567378,
            "upload_time": "2024-09-29T13:45:54",
            "upload_time_iso_8601": "2024-09-29T13:45:54.476420Z",
            "url": "https://files.pythonhosted.org/packages/8f/16/088c0606c55fe0e53e5ee686d287a7e562719b9acf45e79bc486878dfebd/libtfr-2.1.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4349854df133de6d26cf01a7f65c082c82ac0ebff75ae13d669787b277390982",
                "md5": "d7b93ce3864bf4087012fe86198f57b1",
                "sha256": "d9fb61a35eb72e1a2304524fb7e111a2566c7ea1d046ef7050d99b964d6232be"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d7b93ce3864bf4087012fe86198f57b1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 4747942,
            "upload_time": "2024-09-29T13:45:55",
            "upload_time_iso_8601": "2024-09-29T13:45:55.860970Z",
            "url": "https://files.pythonhosted.org/packages/43/49/854df133de6d26cf01a7f65c082c82ac0ebff75ae13d669787b277390982/libtfr-2.1.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f7da26c19d227512f080594a3ebbdc0f7c355cbd78ca6b5fc38b49534c458fd",
                "md5": "d4f7ad6eeedbd82b952a713d2d1fb08b",
                "sha256": "6fa9960d42ff65bad6efbec823d9f649c8f6d04c9cfbbb1e12cf10e647df84e2"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "d4f7ad6eeedbd82b952a713d2d1fb08b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 6695701,
            "upload_time": "2024-09-29T13:45:57",
            "upload_time_iso_8601": "2024-09-29T13:45:57.588517Z",
            "url": "https://files.pythonhosted.org/packages/9f/7d/a26c19d227512f080594a3ebbdc0f7c355cbd78ca6b5fc38b49534c458fd/libtfr-2.1.9-cp38-cp38-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a56a860e7aef99214df45f9fe33f2dc8e6414b2a1c2106d005c06152f598e8d0",
                "md5": "48e2d42c48bfd1c96bef11ad6efde7a9",
                "sha256": "a29f6bc02857ef74c29b7d95bd5b102038f9f7882ae89ab3ec81a6f91462483e"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "48e2d42c48bfd1c96bef11ad6efde7a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 6945225,
            "upload_time": "2024-09-29T13:45:58",
            "upload_time_iso_8601": "2024-09-29T13:45:58.974241Z",
            "url": "https://files.pythonhosted.org/packages/a5/6a/860e7aef99214df45f9fe33f2dc8e6414b2a1c2106d005c06152f598e8d0/libtfr-2.1.9-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f9f3e342489a013c78449bb2406c872e786c543bef653f4a7309488db761f87",
                "md5": "64ee66bd327918f8c91f1a8606a02642",
                "sha256": "9cad3a8a26f0bce1a524f5c6454220836d67166dfbac66eb8e348034bd8e8216"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "64ee66bd327918f8c91f1a8606a02642",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 639806,
            "upload_time": "2024-09-29T13:46:00",
            "upload_time_iso_8601": "2024-09-29T13:46:00.973373Z",
            "url": "https://files.pythonhosted.org/packages/1f/9f/3e342489a013c78449bb2406c872e786c543bef653f4a7309488db761f87/libtfr-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b050741fc790a9b323cf054d09617c243f7b732c0da0a6b79a221505ef2fc5dd",
                "md5": "d1828b9602fcddb0395eca3ea116c238",
                "sha256": "56f02dc7b19a2f86d509579d6ca84bc04fe04a0145216c2762f304a39e5d6a69"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d1828b9602fcddb0395eca3ea116c238",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 556685,
            "upload_time": "2024-09-29T13:46:02",
            "upload_time_iso_8601": "2024-09-29T13:46:02.630270Z",
            "url": "https://files.pythonhosted.org/packages/b0/50/741fc790a9b323cf054d09617c243f7b732c0da0a6b79a221505ef2fc5dd/libtfr-2.1.9-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20a870cb4e65492feff7e35da4e683b40dd78c6611f1ef6d615ab491aab12d84",
                "md5": "f4be4afc02ca58be948a2ce11058f3b1",
                "sha256": "310f86b2cba72a46391a7e2840b63c33adedef0d7c9b9c5179f4b404922c8cf9"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "f4be4afc02ca58be948a2ce11058f3b1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4550113,
            "upload_time": "2024-09-29T13:46:03",
            "upload_time_iso_8601": "2024-09-29T13:46:03.820120Z",
            "url": "https://files.pythonhosted.org/packages/20/a8/70cb4e65492feff7e35da4e683b40dd78c6611f1ef6d615ab491aab12d84/libtfr-2.1.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e737d8b511e55c5381881e4ef132831b010117daac5cc4d53069daf4ad4ada31",
                "md5": "6359f1aff675b8d86c26d9e070686c55",
                "sha256": "8912426404a09e4840ce4fc7aed4fcf2ded7841e53c8b3f5689f322d89d1d281"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6359f1aff675b8d86c26d9e070686c55",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 4732135,
            "upload_time": "2024-09-29T13:46:05",
            "upload_time_iso_8601": "2024-09-29T13:46:05.259494Z",
            "url": "https://files.pythonhosted.org/packages/e7/37/d8b511e55c5381881e4ef132831b010117daac5cc4d53069daf4ad4ada31/libtfr-2.1.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcf075694c44236580ce87481c1246f95e2e8c6cc4a77fc7d4c7c9531fed44b5",
                "md5": "21df30c4d0b21c1b6214072df0202a48",
                "sha256": "f4ecf39ca078809196ca812a557161c45c8a2a7619fea710987912abc73046b6"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "21df30c4d0b21c1b6214072df0202a48",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 6676271,
            "upload_time": "2024-09-29T13:46:07",
            "upload_time_iso_8601": "2024-09-29T13:46:07.441361Z",
            "url": "https://files.pythonhosted.org/packages/bc/f0/75694c44236580ce87481c1246f95e2e8c6cc4a77fc7d4c7c9531fed44b5/libtfr-2.1.9-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d92da2614c3b0b4db82164a4bd9cffe328e9543f6e8004a21ce7ee388bd6dba",
                "md5": "1cdbb8dffb2d52a421eb67f2dc1960e8",
                "sha256": "3d3a7a9993b978a6e6d9a0c2873899045f9bc2ff555dfd6eb7dd47713b8910ac"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1cdbb8dffb2d52a421eb67f2dc1960e8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 6925098,
            "upload_time": "2024-09-29T13:46:08",
            "upload_time_iso_8601": "2024-09-29T13:46:08.911302Z",
            "url": "https://files.pythonhosted.org/packages/7d/92/da2614c3b0b4db82164a4bd9cffe328e9543f6e8004a21ce7ee388bd6dba/libtfr-2.1.9-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24be8b1659cb4aea9d0df7629f9e902892b12cac83b90b4f4f18915c1833df66",
                "md5": "e8ca5e257e43c79809eb85c299385fca",
                "sha256": "4116b47bdf37c7485a2faedaaf9f84491ed1881e7f944641932628e962f534fb"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e8ca5e257e43c79809eb85c299385fca",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 605328,
            "upload_time": "2024-09-29T13:46:10",
            "upload_time_iso_8601": "2024-09-29T13:46:10.481986Z",
            "url": "https://files.pythonhosted.org/packages/24/be/8b1659cb4aea9d0df7629f9e902892b12cac83b90b4f4f18915c1833df66/libtfr-2.1.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "101630d0d64ad5a94f455ed37d08606ebb92c0a7b2ffd11c23f3d736f26052a9",
                "md5": "47aad277106044a68d19a65481e0c721",
                "sha256": "0b79893a277a3882b17dfa859447652668a0d8bf0edda3b6d1b515a5a62e74fb"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "47aad277106044a68d19a65481e0c721",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 532218,
            "upload_time": "2024-09-29T13:46:11",
            "upload_time_iso_8601": "2024-09-29T13:46:11.577400Z",
            "url": "https://files.pythonhosted.org/packages/10/16/30d0d64ad5a94f455ed37d08606ebb92c0a7b2ffd11c23f3d736f26052a9/libtfr-2.1.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04c28777cb7f6f40318d3ed1b6b2f6c5164795567082af7577ffa27c77c0008a",
                "md5": "10afc5c6fff9f850c19b529be3f39e36",
                "sha256": "9c2324234c9531adb7ca92e77e00c561e3baa2b2ca9353f81e9098a774b62c09"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "10afc5c6fff9f850c19b529be3f39e36",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 4083615,
            "upload_time": "2024-09-29T13:46:13",
            "upload_time_iso_8601": "2024-09-29T13:46:13.497737Z",
            "url": "https://files.pythonhosted.org/packages/04/c2/8777cb7f6f40318d3ed1b6b2f6c5164795567082af7577ffa27c77c0008a/libtfr-2.1.9-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d759f40bd48658617cbbab706138b290f19323c413aae04711373f57ce35912c",
                "md5": "c2df566d901e2a941b601d7eeee5dfb6",
                "sha256": "98f3ce905e37a544c2ff693a02de363d5ab59bf17ce2b53146415d732db927a4"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2df566d901e2a941b601d7eeee5dfb6",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 607538,
            "upload_time": "2024-09-29T13:46:15",
            "upload_time_iso_8601": "2024-09-29T13:46:15.286978Z",
            "url": "https://files.pythonhosted.org/packages/d7/59/f40bd48658617cbbab706138b290f19323c413aae04711373f57ce35912c/libtfr-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7681ff749252778841fbd16e1e16ce7fceda134297945e020d211f1ad8486a09",
                "md5": "1cc2f13e4b33a11d877aae70ad5c9843",
                "sha256": "f2d7b74412776f40d535b0624127055cb260615b59b4a3876dd44859af6a5a9d"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1cc2f13e4b33a11d877aae70ad5c9843",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 3941796,
            "upload_time": "2024-09-29T13:46:17",
            "upload_time_iso_8601": "2024-09-29T13:46:17.162284Z",
            "url": "https://files.pythonhosted.org/packages/76/81/ff749252778841fbd16e1e16ce7fceda134297945e020d211f1ad8486a09/libtfr-2.1.9-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "72f78446363a9dff5163d2544b7a48e66ac6c8b0dfe4799a8490d5daf7703ef6",
                "md5": "9798379edfba09ccd8b48ccdd36c1f61",
                "sha256": "c4191fa51d2d7e214249b3d3c6b327440544660b93c33e75ec155c94e6954bfc"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9798379edfba09ccd8b48ccdd36c1f61",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 4092047,
            "upload_time": "2024-09-29T13:46:18",
            "upload_time_iso_8601": "2024-09-29T13:46:18.542342Z",
            "url": "https://files.pythonhosted.org/packages/72/f7/8446363a9dff5163d2544b7a48e66ac6c8b0dfe4799a8490d5daf7703ef6/libtfr-2.1.9-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39c89895e670900572d7615aa5c08280ad83abc9a58177e685edda3b1024905c",
                "md5": "520ef4f10b8bb856a2ebb7ce14c552eb",
                "sha256": "389fb66b84ee7e11c32e9a851fb8f885e50d0bb5976aeea915096ff2ce29335b"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "520ef4f10b8bb856a2ebb7ce14c552eb",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 607539,
            "upload_time": "2024-09-29T13:46:20",
            "upload_time_iso_8601": "2024-09-29T13:46:20.080634Z",
            "url": "https://files.pythonhosted.org/packages/39/c8/9895e670900572d7615aa5c08280ad83abc9a58177e685edda3b1024905c/libtfr-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c2ee7113f32317664181f694e684addf073fde79a7d283293762a10a7117428",
                "md5": "25bd2f18e1ec5e2ffffdd71d40686d66",
                "sha256": "0603116fb0babb64fbf48b5cf49d6029205905dfd7bc5eab4f1ddfa2d40c5220"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "25bd2f18e1ec5e2ffffdd71d40686d66",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 532582,
            "upload_time": "2024-09-29T13:46:21",
            "upload_time_iso_8601": "2024-09-29T13:46:21.716174Z",
            "url": "https://files.pythonhosted.org/packages/8c/2e/e7113f32317664181f694e684addf073fde79a7d283293762a10a7117428/libtfr-2.1.9-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bc82970d3ba1ed68b49d287798c87a5112d146d1e82e3d1161092b54f570da38",
                "md5": "71b3d3c8cee4a833e11ee5bca09d2855",
                "sha256": "883a2eabb41dfa9aa75e83125874be577cc0da6418c7b70a2b2367223aae5329"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "71b3d3c8cee4a833e11ee5bca09d2855",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 3941588,
            "upload_time": "2024-09-29T13:46:23",
            "upload_time_iso_8601": "2024-09-29T13:46:23.157044Z",
            "url": "https://files.pythonhosted.org/packages/bc/82/970d3ba1ed68b49d287798c87a5112d146d1e82e3d1161092b54f570da38/libtfr-2.1.9-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4bc83bc294385fac1632714cb9fa3e7d1d92b5bb472727ad37fd3e63a1d3c33a",
                "md5": "09cb079fe365313085c0473dcb64ec74",
                "sha256": "ccd8b693d8bdb20e5cc88d45707dff5ac65a8852280cf7d2cf9720de5f6fa804"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "09cb079fe365313085c0473dcb64ec74",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 4091707,
            "upload_time": "2024-09-29T13:46:24",
            "upload_time_iso_8601": "2024-09-29T13:46:24.445092Z",
            "url": "https://files.pythonhosted.org/packages/4b/c8/3bc294385fac1632714cb9fa3e7d1d92b5bb472727ad37fd3e63a1d3c33a/libtfr-2.1.9-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b484e1cbba73d119ffda15974a5f2cef218e8cbbfe366de655b3937ab928456",
                "md5": "5e207286c6374adedc75821aaf40d099",
                "sha256": "208b872b6aba9875316730fd8cbdb4b675636735cbc7dc437ea83b88af1d8091"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5e207286c6374adedc75821aaf40d099",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 605173,
            "upload_time": "2024-09-29T13:46:25",
            "upload_time_iso_8601": "2024-09-29T13:46:25.651162Z",
            "url": "https://files.pythonhosted.org/packages/1b/48/4e1cbba73d119ffda15974a5f2cef218e8cbbfe366de655b3937ab928456/libtfr-2.1.9-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "538fb20c3624de8a542bcc3c3aed24a97d6045c1e8a31da78a206bba65e96a22",
                "md5": "3f7b9fcf37e7da50c4133de65010bd7e",
                "sha256": "8c94409cefd83c7a6a925cea5d2c41641042daccc8947808a361e1873587ddb8"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3f7b9fcf37e7da50c4133de65010bd7e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 532059,
            "upload_time": "2024-09-29T13:46:26",
            "upload_time_iso_8601": "2024-09-29T13:46:26.755557Z",
            "url": "https://files.pythonhosted.org/packages/53/8f/b20c3624de8a542bcc3c3aed24a97d6045c1e8a31da78a206bba65e96a22/libtfr-2.1.9-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f3efa7199ee63b2d961369a17145f8329451a5f9dee35bfa85ee9135194c489",
                "md5": "b7966207f065a925f8bd4dd9c1610489",
                "sha256": "f2e3cf3de2b1a77c0d268e8cc2e5c8936fcb77a5e54ac8ac58f9ccd8b75144c5"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b7966207f065a925f8bd4dd9c1610489",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 4083618,
            "upload_time": "2024-09-29T13:46:27",
            "upload_time_iso_8601": "2024-09-29T13:46:27.885723Z",
            "url": "https://files.pythonhosted.org/packages/0f/3e/fa7199ee63b2d961369a17145f8329451a5f9dee35bfa85ee9135194c489/libtfr-2.1.9-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d02a911a3dedb4be1c2a081cacfbd98d888f252452d48ca130d54d0561bdaf2b",
                "md5": "8d15833b6d3fc419e74d5133ee73fb75",
                "sha256": "1b1463910ea7836c0d38d462b7c66c0b05ac5655f2fffeed69e53a9e9ff9694d"
            },
            "downloads": -1,
            "filename": "libtfr-2.1.9.tar.gz",
            "has_sig": false,
            "md5_digest": "8d15833b6d3fc419e74d5133ee73fb75",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 234094,
            "upload_time": "2024-09-29T13:46:29",
            "upload_time_iso_8601": "2024-09-29T13:46:29.177184Z",
            "url": "https://files.pythonhosted.org/packages/d0/2a/911a3dedb4be1c2a081cacfbd98d888f252452d48ca130d54d0561bdaf2b/libtfr-2.1.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-29 13:46:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "melizalab",
    "github_project": "libtfr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "Cython",
            "specs": [
                [
                    "==",
                    "0.29.30"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.23.1"
                ]
            ]
        },
        {
            "name": "pkgconfig",
            "specs": [
                [
                    "==",
                    "1.5.5"
                ]
            ]
        }
    ],
    "lcname": "libtfr"
}
        
Elapsed time: 4.63465s