fluidfft


Namefluidfft JSON
Version 0.4.0.post1 PyPI version JSON
download
home_pageNone
SummaryEfficient and easy Fast Fourier Transform (FFT) for Python.
upload_time2024-04-03 22:58:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseCeCILL License
keywords fast fourier transform fft spectral code
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![FluidFFT](https://foss.heptapod.net/fluiddyn/fluidfft/-/blob/branch/default/doc/logo.svg)
===========================================================================================

*Efficient and easy Fast Fourier Transform for Python*

[![Latest version](https://img.shields.io/pypi/v/fluidfft.svg)](https://pypi.org/project/fluidfft/)
![Supported Python versions](https://img.shields.io/pypi/pyversions/fluidfft.svg)
[![Documentation status](https://readthedocs.org/projects/fluidfft/badge/?version=latest)](http://fluidfft.readthedocs.org)
[![Code coverage](https://codecov.io/gh/fluiddyn/fluidfft/branch/branch%2Fdefault/graph/badge.svg)](https://codecov.io/gh/fluiddyn/fluidfft)
[![Heptapod CI](https://foss.heptapod.net/fluiddyn/fluidfft/badges/branch/default/pipeline.svg)](https://foss.heptapod.net/fluiddyn/fluidfft/-/pipelines)
[![Github Actions Linux](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-linux.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-linux.yml)
[![Github Actions Pixi](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-pixi.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-pixi.yml)

Fluidfft provides C++ classes and their Python wrapper classes written
in Cython useful to perform Fast Fourier Transform (FFT) with different
libraries, in particular

-   [fftw3](http://www.fftw.org/) and
    [fftw3-mpi](http://www.fftw.org/fftw3_doc/Distributed_002dmemory-FFTW-with-MPI.html)
-   [pfft](https://github.com/mpip/pfft)
-   [p3dfft](https://github.com/sdsc/p3dfft)
-   [mpi4py-fft](https://bitbucket.org/mpi4py/mpi4py-fft)
-   [cufft](https://developer.nvidia.com/cufft) (fft library by CUDA
    running on GPU)

[pfft](https://github.com/mpip/pfft),
[p3dfft](https://github.com/sdsc/p3dfft) and
[mpi4py-fft](https://bitbucket.org/mpi4py/mpi4py-fft) are specialized in
computing FFT efficiently on several cores of big clusters. The data can
be split in pencils and can be distributed on several processes.

**Documentation**: <https://fluidfft.readthedocs.io>

Getting started
---------------

To try fluidfft without installation:
[![Binder notebook](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fluiddyn/fluidfft/branch%2Fdefault?urlpath=lab/tree/doc/ipynb)

For a **basic installation** which relies only on a `pyFFTW` interface;
or provided you have the optional FFT libaries, that you need, installed
and discoverable in your path (see environment variables `LIBRARY_PATH`,
`LD_LIBRARY_PATH`, `CPATH`) it should be sufficient to run:

    pip install fluidfft [--user]

Add `--user` flag if you are installing without setting up a virtual
environment.

Installation
------------

To take full advantage of fluidfft, consider installing the following
(optional) dependencies and configurations before installing fluidfft.
Click on the links to know more:

1.  OpenMPI or equivalent
2.  FFT libraries such as MPI-enabled FFTW (for 2D and 3D solvers) and
    P3DFFT, PFFT (for 3D solvers) either using a package manager or
    [from
    source](https://fluidfft.readthedocs.io/en/latest/install/fft_libs.html)
3.  Python packages `fluiddyn cython pyfftw pythran mpi4py`
4.  [A C++11 compiler and BLAS
    libraries](https://github.com/serge-sans-paille/pythran#installation)
    and
    [configure](https://fluidfft.readthedocs.io/en/latest/install.html#dependencies)
    `~/.pythranrc` to customize compilation of Pythran extensions
5.  [Configure](https://fluidfft.readthedocs.io/en/latest/install.html#basic-installation-with-pip)
    `~/.fluidfft-site.cfg` to detect the FFT libraries and install
    `fluidfft`

**Note**: Detailed instructions to install the above dependencies using
Anaconda / Miniconda or in a specific operating system such as Ubuntu,
macOS etc. can be found
[here](https://fluiddyn.readthedocs.io/en/latest/get_good_Python_env.html).

### C++ API

See a [working minimal example with
Makefile](https://fluidfft.readthedocs.io/en/latest/examples/cpp.html)
which illustrates how to use the C++ API.

Tests
-----

From the root directory:

    make tests
    make tests_mpi

Or, from the root directory or any of the \"test\" directories:

    pytest -s
    mpirun -np 2 pytest -s

How does it work?
-----------------

Fluidfft provides classes to use in a transparent way all these
libraries with an unified API. These classes are not limited to just
performing Fourier transforms. They are also an elegant solution to
efficiently perform operations on data in real and spectral spaces
(gradient, divergence, rotational, sum over wavenumbers, computation of
spectra, etc.) and easily deal with the data distribution (gather the
data on one process, scatter the data to many processes) without having
to know the internal organization of every FFT library.

Fluidfft hides the internal complication of (distributed) FFT libraries
and allows the user to find (by benchmarking) and to choose the most
efficient solution for a particular case. Fluidfft is therefore a very
useful tool to write HPC applications using FFT, as for example
pseudo-spectral simulation codes. In particular, fluidfft is used in the
Computational Fluid Dynamics (CFD) framework
[fluidsim](http://fluidsim.readthedocs.org).

License
-------

Fluidfft is distributed under the
[CeCILL](http://www.cecill.info/index.en.html) License, a GPL compatible
french license.

Metapapers and citations
------------------------

If you use FluidFFT to produce scientific articles, please cite our
metapapers presenting the [FluidDyn
project](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.237/)
and
[Fluidfft](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.238/):

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fluidfft",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "Fast Fourier Transform FFT spectral code",
    "author": null,
    "author_email": "Pierre Augier <pierre.augier@legi.cnrs.fr>",
    "download_url": "https://files.pythonhosted.org/packages/88/d9/a6495c684a64e2e0c88d64e2e9551b23ba415e6d69539b4e01edb2efbba8/fluidfft-0.4.0.post1.tar.gz",
    "platform": null,
    "description": "![FluidFFT](https://foss.heptapod.net/fluiddyn/fluidfft/-/blob/branch/default/doc/logo.svg)\n===========================================================================================\n\n*Efficient and easy Fast Fourier Transform for Python*\n\n[![Latest version](https://img.shields.io/pypi/v/fluidfft.svg)](https://pypi.org/project/fluidfft/)\n![Supported Python versions](https://img.shields.io/pypi/pyversions/fluidfft.svg)\n[![Documentation status](https://readthedocs.org/projects/fluidfft/badge/?version=latest)](http://fluidfft.readthedocs.org)\n[![Code coverage](https://codecov.io/gh/fluiddyn/fluidfft/branch/branch%2Fdefault/graph/badge.svg)](https://codecov.io/gh/fluiddyn/fluidfft)\n[![Heptapod CI](https://foss.heptapod.net/fluiddyn/fluidfft/badges/branch/default/pipeline.svg)](https://foss.heptapod.net/fluiddyn/fluidfft/-/pipelines)\n[![Github Actions Linux](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-linux.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-linux.yml)\n[![Github Actions Pixi](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-pixi.yml/badge.svg?branch=branch/default)](https://github.com/fluiddyn/fluidfft/actions/workflows/ci-pixi.yml)\n\nFluidfft provides C++ classes and their Python wrapper classes written\nin Cython useful to perform Fast Fourier Transform (FFT) with different\nlibraries, in particular\n\n-   [fftw3](http://www.fftw.org/) and\n    [fftw3-mpi](http://www.fftw.org/fftw3_doc/Distributed_002dmemory-FFTW-with-MPI.html)\n-   [pfft](https://github.com/mpip/pfft)\n-   [p3dfft](https://github.com/sdsc/p3dfft)\n-   [mpi4py-fft](https://bitbucket.org/mpi4py/mpi4py-fft)\n-   [cufft](https://developer.nvidia.com/cufft) (fft library by CUDA\n    running on GPU)\n\n[pfft](https://github.com/mpip/pfft),\n[p3dfft](https://github.com/sdsc/p3dfft) and\n[mpi4py-fft](https://bitbucket.org/mpi4py/mpi4py-fft) are specialized in\ncomputing FFT efficiently on several cores of big clusters. The data can\nbe split in pencils and can be distributed on several processes.\n\n**Documentation**: <https://fluidfft.readthedocs.io>\n\nGetting started\n---------------\n\nTo try fluidfft without installation:\n[![Binder notebook](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/fluiddyn/fluidfft/branch%2Fdefault?urlpath=lab/tree/doc/ipynb)\n\nFor a **basic installation** which relies only on a `pyFFTW` interface;\nor provided you have the optional FFT libaries, that you need, installed\nand discoverable in your path (see environment variables `LIBRARY_PATH`,\n`LD_LIBRARY_PATH`, `CPATH`) it should be sufficient to run:\n\n    pip install fluidfft [--user]\n\nAdd `--user` flag if you are installing without setting up a virtual\nenvironment.\n\nInstallation\n------------\n\nTo take full advantage of fluidfft, consider installing the following\n(optional) dependencies and configurations before installing fluidfft.\nClick on the links to know more:\n\n1.  OpenMPI or equivalent\n2.  FFT libraries such as MPI-enabled FFTW (for 2D and 3D solvers) and\n    P3DFFT, PFFT (for 3D solvers) either using a package manager or\n    [from\n    source](https://fluidfft.readthedocs.io/en/latest/install/fft_libs.html)\n3.  Python packages `fluiddyn cython pyfftw pythran mpi4py`\n4.  [A C++11 compiler and BLAS\n    libraries](https://github.com/serge-sans-paille/pythran#installation)\n    and\n    [configure](https://fluidfft.readthedocs.io/en/latest/install.html#dependencies)\n    `~/.pythranrc` to customize compilation of Pythran extensions\n5.  [Configure](https://fluidfft.readthedocs.io/en/latest/install.html#basic-installation-with-pip)\n    `~/.fluidfft-site.cfg` to detect the FFT libraries and install\n    `fluidfft`\n\n**Note**: Detailed instructions to install the above dependencies using\nAnaconda / Miniconda or in a specific operating system such as Ubuntu,\nmacOS etc. can be found\n[here](https://fluiddyn.readthedocs.io/en/latest/get_good_Python_env.html).\n\n### C++ API\n\nSee a [working minimal example with\nMakefile](https://fluidfft.readthedocs.io/en/latest/examples/cpp.html)\nwhich illustrates how to use the C++ API.\n\nTests\n-----\n\nFrom the root directory:\n\n    make tests\n    make tests_mpi\n\nOr, from the root directory or any of the \\\"test\\\" directories:\n\n    pytest -s\n    mpirun -np 2 pytest -s\n\nHow does it work?\n-----------------\n\nFluidfft provides classes to use in a transparent way all these\nlibraries with an unified API. These classes are not limited to just\nperforming Fourier transforms. They are also an elegant solution to\nefficiently perform operations on data in real and spectral spaces\n(gradient, divergence, rotational, sum over wavenumbers, computation of\nspectra, etc.) and easily deal with the data distribution (gather the\ndata on one process, scatter the data to many processes) without having\nto know the internal organization of every FFT library.\n\nFluidfft hides the internal complication of (distributed) FFT libraries\nand allows the user to find (by benchmarking) and to choose the most\nefficient solution for a particular case. Fluidfft is therefore a very\nuseful tool to write HPC applications using FFT, as for example\npseudo-spectral simulation codes. In particular, fluidfft is used in the\nComputational Fluid Dynamics (CFD) framework\n[fluidsim](http://fluidsim.readthedocs.org).\n\nLicense\n-------\n\nFluidfft is distributed under the\n[CeCILL](http://www.cecill.info/index.en.html) License, a GPL compatible\nfrench license.\n\nMetapapers and citations\n------------------------\n\nIf you use FluidFFT to produce scientific articles, please cite our\nmetapapers presenting the [FluidDyn\nproject](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.237/)\nand\n[Fluidfft](https://openresearchsoftware.metajnl.com/articles/10.5334/jors.238/):\n",
    "bugtrack_url": null,
    "license": "CeCILL License",
    "summary": "Efficient and easy Fast Fourier Transform (FFT) for Python.",
    "version": "0.4.0.post1",
    "project_urls": {
        "Homepage": "https://foss.heptapod.net/fluiddyn/fluidfft"
    },
    "split_keywords": [
        "fast",
        "fourier",
        "transform",
        "fft",
        "spectral",
        "code"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5afde4c0809ec45c4cbf1922d5267120811dae7338cb7d2690ee912a54b044d1",
                "md5": "64c841523021cce53511f82f20b56c7e",
                "sha256": "7dd227edc7dc598efdb0969ef4b106f3d065908cded7c8bbce50c56ae6c16742"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "64c841523021cce53511f82f20b56c7e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 308823,
            "upload_time": "2024-04-03T22:57:57",
            "upload_time_iso_8601": "2024-04-03T22:57:57.186185Z",
            "url": "https://files.pythonhosted.org/packages/5a/fd/e4c0809ec45c4cbf1922d5267120811dae7338cb7d2690ee912a54b044d1/fluidfft-0.4.0.post1-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69a6c83c1b868583b9b161920f543463068d99d71fac5ef6900afd46c6010fcf",
                "md5": "31559085ddfa588342bbd3b937a99452",
                "sha256": "8db109ee850682b68aec147834d93db37d1de7f80a40b98a42f269b96cae900c"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "31559085ddfa588342bbd3b937a99452",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 281520,
            "upload_time": "2024-04-03T22:57:59",
            "upload_time_iso_8601": "2024-04-03T22:57:59.129753Z",
            "url": "https://files.pythonhosted.org/packages/69/a6/c83c1b868583b9b161920f543463068d99d71fac5ef6900afd46c6010fcf/fluidfft-0.4.0.post1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "511737b218b990ee3425160267841a1282f70d056f889bd370b21bc758077995",
                "md5": "8cac3f5355dc86e50ee66367cca5fff0",
                "sha256": "6fd396b113f9400e48bd6c708e3a4d7da10dc7d0bce65bcbeaa9bc4aa275fc78"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8cac3f5355dc86e50ee66367cca5fff0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 231609,
            "upload_time": "2024-04-03T22:58:01",
            "upload_time_iso_8601": "2024-04-03T22:58:01.188977Z",
            "url": "https://files.pythonhosted.org/packages/51/17/37b218b990ee3425160267841a1282f70d056f889bd370b21bc758077995/fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "693610eb79f592636681786864b617a89e614f274c73cdc9ba4d8ab044103438",
                "md5": "951e7cd7703a9158e106bd8a22a1aa0c",
                "sha256": "37ce4caeccf1a465568835152bf94dc81716e0a241134b9481c25e72fd92e2b4"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "951e7cd7703a9158e106bd8a22a1aa0c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 209493,
            "upload_time": "2024-04-03T22:58:02",
            "upload_time_iso_8601": "2024-04-03T22:58:02.678504Z",
            "url": "https://files.pythonhosted.org/packages/69/36/10eb79f592636681786864b617a89e614f274c73cdc9ba4d8ab044103438/fluidfft-0.4.0.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3167aeb8d31677024ef1c855ad38098d7c5cdae4e90dfdc0899902ed2c9abbb",
                "md5": "be2364c15bd7fed773c3cba912edc8cb",
                "sha256": "447421cf80a649bc1cf97787b48912a0eece494136279d7d62b36641c8f74d3c"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "be2364c15bd7fed773c3cba912edc8cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 234866,
            "upload_time": "2024-04-03T22:58:04",
            "upload_time_iso_8601": "2024-04-03T22:58:04.430894Z",
            "url": "https://files.pythonhosted.org/packages/a3/16/7aeb8d31677024ef1c855ad38098d7c5cdae4e90dfdc0899902ed2c9abbb/fluidfft-0.4.0.post1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f396ff92f4e24a21e88b28ab543458fb48695465540b9b07cd4dfd4230d2c43f",
                "md5": "30db6a9f74333fd04b3a7a959038f383",
                "sha256": "1c7e1ee37b141b38f19b1da9a0f849cbccf414a847cb91b2ec418a3117a7d76c"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "30db6a9f74333fd04b3a7a959038f383",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 308820,
            "upload_time": "2024-04-03T22:58:06",
            "upload_time_iso_8601": "2024-04-03T22:58:06.179417Z",
            "url": "https://files.pythonhosted.org/packages/f3/96/ff92f4e24a21e88b28ab543458fb48695465540b9b07cd4dfd4230d2c43f/fluidfft-0.4.0.post1-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4bb034162236f2b368115a28c562185a0bc7be0d2d33d8bf77c62e13a63392e",
                "md5": "5639e99b4d2f1ec0d100ae77b2d3958e",
                "sha256": "7689c293f3467986a992dbe778f0a5e7cea315ef53c3b25a9c4578a06c8b5abc"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5639e99b4d2f1ec0d100ae77b2d3958e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 281521,
            "upload_time": "2024-04-03T22:58:08",
            "upload_time_iso_8601": "2024-04-03T22:58:08.135471Z",
            "url": "https://files.pythonhosted.org/packages/f4/bb/034162236f2b368115a28c562185a0bc7be0d2d33d8bf77c62e13a63392e/fluidfft-0.4.0.post1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4131fcef9bcf82fb38559f6f00f47931eada40a3f53353d03d60bab300586051",
                "md5": "96b20d4fd5db740a929521bb8b8ed05d",
                "sha256": "e83650ec76a74ef5c272f5b29501d92614bb755aaa1c3dc102a48db1b4938112"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "96b20d4fd5db740a929521bb8b8ed05d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 232859,
            "upload_time": "2024-04-03T22:58:10",
            "upload_time_iso_8601": "2024-04-03T22:58:10.070110Z",
            "url": "https://files.pythonhosted.org/packages/41/31/fcef9bcf82fb38559f6f00f47931eada40a3f53353d03d60bab300586051/fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f4270373f88891cc4aee41f7b50c44fe8cb2b972c5a35fff6c0e33bebd4f7e23",
                "md5": "2796f5bf4611c6a5b11947e697295988",
                "sha256": "c3d604530b6292002131971d5ac19ee1c38a77fdd778fd51fa6c9a415f2c3a25"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2796f5bf4611c6a5b11947e697295988",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 209564,
            "upload_time": "2024-04-03T22:58:11",
            "upload_time_iso_8601": "2024-04-03T22:58:11.301151Z",
            "url": "https://files.pythonhosted.org/packages/f4/27/0373f88891cc4aee41f7b50c44fe8cb2b972c5a35fff6c0e33bebd4f7e23/fluidfft-0.4.0.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea38c2ce72d4ea9bf39173ad62fd012c8aefad9bbce10df41081e1e7be32be4f",
                "md5": "f8e61333718274541f87f348667bd164",
                "sha256": "2e314ba8df1572d5ee83bb8bafff8d59ae7c51c928fdb597b4e0af92098c57a3"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f8e61333718274541f87f348667bd164",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 234871,
            "upload_time": "2024-04-03T22:58:13",
            "upload_time_iso_8601": "2024-04-03T22:58:13.490251Z",
            "url": "https://files.pythonhosted.org/packages/ea/38/c2ce72d4ea9bf39173ad62fd012c8aefad9bbce10df41081e1e7be32be4f/fluidfft-0.4.0.post1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be9aaaec456cb5f5b5cfdd7faa18912a8372c26e2b9dbc2a689eb1158528ae4c",
                "md5": "0f7ed8456f4c25a49864230b1922ee75",
                "sha256": "bff1b2a683ad8ca3571fc4e6adc53ba27db7f19f99ccfa6cc366d9182af71f52"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0f7ed8456f4c25a49864230b1922ee75",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 311872,
            "upload_time": "2024-04-03T22:58:15",
            "upload_time_iso_8601": "2024-04-03T22:58:15.182226Z",
            "url": "https://files.pythonhosted.org/packages/be/9a/aaec456cb5f5b5cfdd7faa18912a8372c26e2b9dbc2a689eb1158528ae4c/fluidfft-0.4.0.post1-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa853d80aa2bd2e5b298179bea9801815100d46a4301bfee68ae173bd197a273",
                "md5": "a70f198c882914daea99d397d0d7e59e",
                "sha256": "226cdeb99e559cb40d00c7fda8ae42a3ea3fc678413f182888bf52aa2ba451db"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a70f198c882914daea99d397d0d7e59e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 284071,
            "upload_time": "2024-04-03T22:58:16",
            "upload_time_iso_8601": "2024-04-03T22:58:16.311002Z",
            "url": "https://files.pythonhosted.org/packages/aa/85/3d80aa2bd2e5b298179bea9801815100d46a4301bfee68ae173bd197a273/fluidfft-0.4.0.post1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e9fa15e667f9b1e472be2555b5aea2e99fbcf405b998d83feb7380f68d485b1",
                "md5": "05863434093e278cba1e23325591cbb5",
                "sha256": "b57041a38cf4d43bbd91ad3f591652332e9930033a012cd6490bcc91f3f8fe32"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "05863434093e278cba1e23325591cbb5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 231868,
            "upload_time": "2024-04-03T22:58:18",
            "upload_time_iso_8601": "2024-04-03T22:58:18.060793Z",
            "url": "https://files.pythonhosted.org/packages/7e/9f/a15e667f9b1e472be2555b5aea2e99fbcf405b998d83feb7380f68d485b1/fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "814aad0a47473063a8450c10855c1fa5dd0b2e73273d10e178d90c468aaf814c",
                "md5": "63bd04c0b115816451208ffa1db7022e",
                "sha256": "cdab2ae0e091adb00999d0d382ce8e30fa4e77291142de910fbdcdadec1990f0"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "63bd04c0b115816451208ffa1db7022e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 212833,
            "upload_time": "2024-04-03T22:58:19",
            "upload_time_iso_8601": "2024-04-03T22:58:19.494635Z",
            "url": "https://files.pythonhosted.org/packages/81/4a/ad0a47473063a8450c10855c1fa5dd0b2e73273d10e178d90c468aaf814c/fluidfft-0.4.0.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ecf1e56ba3c71c47bca603552150bb1e2e7e60ec691fac5db299cc15976f0c5f",
                "md5": "8a9bee8c64ceb132df01334c555dd2d7",
                "sha256": "2dd87c79091fa939f66cc18215a855f9ef20033a57d06196d69d29e6347840c1"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8a9bee8c64ceb132df01334c555dd2d7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 235133,
            "upload_time": "2024-04-03T22:58:21",
            "upload_time_iso_8601": "2024-04-03T22:58:21.346463Z",
            "url": "https://files.pythonhosted.org/packages/ec/f1/e56ba3c71c47bca603552150bb1e2e7e60ec691fac5db299cc15976f0c5f/fluidfft-0.4.0.post1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea53d408848628b9b9a78123b0588b9229c2d8be9bf5c13fca82c98953efe958",
                "md5": "427adb93cc1f1cce571e4abf45899919",
                "sha256": "c5d9c1ab848d1793f652731209f6ef246ce7ff1e6c3aaa25f554e1222e39eecf"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "427adb93cc1f1cce571e4abf45899919",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 308831,
            "upload_time": "2024-04-03T22:58:23",
            "upload_time_iso_8601": "2024-04-03T22:58:23.222880Z",
            "url": "https://files.pythonhosted.org/packages/ea/53/d408848628b9b9a78123b0588b9229c2d8be9bf5c13fca82c98953efe958/fluidfft-0.4.0.post1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2f8c151aed3c1de6af40d6c617eec120ff3d51eb2762aec739a4918bce5920f",
                "md5": "dbdc9025555b9ce8532e59ad05d7906a",
                "sha256": "ce9cc3a5f5758a80de121c8399289345508f14ddba99a3f8b556aa6484d3356e"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "dbdc9025555b9ce8532e59ad05d7906a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 281512,
            "upload_time": "2024-04-03T22:58:25",
            "upload_time_iso_8601": "2024-04-03T22:58:25.106440Z",
            "url": "https://files.pythonhosted.org/packages/a2/f8/c151aed3c1de6af40d6c617eec120ff3d51eb2762aec739a4918bce5920f/fluidfft-0.4.0.post1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04f06f299f70a8d14e72927969d216acf5bbf06c8c2055a13b1842818b61b510",
                "md5": "9a7fb5fb831ecd71fca10ccde8be1fdc",
                "sha256": "683c466ce430e88d684852280e540ae1718540dc93f182f3c63e86e01c6b7be2"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9a7fb5fb831ecd71fca10ccde8be1fdc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 233680,
            "upload_time": "2024-04-03T22:58:26",
            "upload_time_iso_8601": "2024-04-03T22:58:26.277152Z",
            "url": "https://files.pythonhosted.org/packages/04/f0/6f299f70a8d14e72927969d216acf5bbf06c8c2055a13b1842818b61b510/fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0185097d7396c83bae81c76b730e61a08ba74382b86b1283c3041bebf39f4351",
                "md5": "306cbf2729b1b05d0bee96946f15290d",
                "sha256": "50252bf2b17cfe9be49d41119d6528ab50608217bcf0cdd450b0849091b0b8da"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "306cbf2729b1b05d0bee96946f15290d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 209327,
            "upload_time": "2024-04-03T22:58:27",
            "upload_time_iso_8601": "2024-04-03T22:58:27.598957Z",
            "url": "https://files.pythonhosted.org/packages/01/85/097d7396c83bae81c76b730e61a08ba74382b86b1283c3041bebf39f4351/fluidfft-0.4.0.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0b9855386d40fd25e0b251c2b4042a4fde981a4d200912d87dd29a4424ca0265",
                "md5": "cf0649fba12473db6998d54bebcca3a2",
                "sha256": "7dd0d013933dc8b6d4b187fc1693d87217f6e314a368d1838c06933d66473ebf"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "cf0649fba12473db6998d54bebcca3a2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 234850,
            "upload_time": "2024-04-03T22:58:29",
            "upload_time_iso_8601": "2024-04-03T22:58:29.889182Z",
            "url": "https://files.pythonhosted.org/packages/0b/98/55386d40fd25e0b251c2b4042a4fde981a4d200912d87dd29a4424ca0265/fluidfft-0.4.0.post1-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "88d9a6495c684a64e2e0c88d64e2e9551b23ba415e6d69539b4e01edb2efbba8",
                "md5": "a8c5fe7530d14eb8d23b58fe4c12db24",
                "sha256": "70791c92f43d7611c5db89d069e745875fca9be02948156a6c1b184fbc87cb4d"
            },
            "downloads": -1,
            "filename": "fluidfft-0.4.0.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "a8c5fe7530d14eb8d23b58fe4c12db24",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 426601,
            "upload_time": "2024-04-03T22:58:31",
            "upload_time_iso_8601": "2024-04-03T22:58:31.628148Z",
            "url": "https://files.pythonhosted.org/packages/88/d9/a6495c684a64e2e0c88d64e2e9551b23ba415e6d69539b4e01edb2efbba8/fluidfft-0.4.0.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-03 22:58:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "fluidfft"
}
        
Elapsed time: 0.22186s