pyFFTW


NamepyFFTW JSON
Version 0.15.0 PyPI version JSON
download
home_pageNone
SummaryA pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms.
upload_time2024-11-06 16:01:19
maintainerNone
docs_urlhttps://pythonhosted.org/pyFFTW/
authorNone
requires_python>=3.10
licenseBSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ### Current Build Status

| GitHub Actions                                                                                                                                                                                                | Read the Docs                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [![Build Wheels, Test and Release](https://github.com/pyFFTW/pyFFTW/actions/workflows/wheel_tests_and_release.yml/badge.svg)](https://github.com/pyFFTW/pyFFTW/actions/workflows/wheel_tests_and_release.yml) | [![read_the_docs](https://readthedocs.org/projects/pyfftw/badge/?version=latest)](http://pyfftw.readthedocs.io/en/latest/?badge=latest) |

### Conda-forge Status

[![Linux](https://img.shields.io/circleci/project/github/conda-forge/pyfftw-feedstock/master.svg?label=Linux)](https://circleci.com/gh/conda-forge/pyfftw-feedstock) [![OSX](https://img.shields.io/travis/conda-forge/pyfftw-feedstock/master.svg?label=macOS)](https://travis-ci.org/conda-forge/pyfftw-feedstock) [![Windows](https://img.shields.io/appveyor/ci/conda-forge/pyfftw-feedstock/master.svg?label=Windows)](https://ci.appveyor.com/project/conda-forge/pyfftw-feedstock/branch/master)


### Conda-forge Info

| Name                                                                                                             | Downloads                                                                                                             | Version                                                                                                             | Platforms                                                                                                             |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| [![Conda Recipe](https://img.shields.io/badge/recipe-pyfftw-green.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) |

# PyFFTW

pyFFTW is a pythonic wrapper around [FFTW 3](https://www.fftw.org), the speedy
FFT library.  The ultimate aim is to present a unified interface for all the
possible transforms that FFTW can perform.

Both the complex DFT and the real DFT are supported, as well as on arbitrary
axes of arbitrary shaped and strided arrays, which makes it almost
feature equivalent to standard and real FFT functions of ``numpy.fft``
(indeed, it supports the ``clongdouble`` dtype which ``numpy.fft`` does not).

Wisdom import and export now works fairly reliably.

Operating FFTW in multithreaded mode is supported.

pyFFTW implements the numpy and scipy fft interfaces in order for users to
take advantage of the speed of FFTW with minimal code modifications.

A comprehensive unittest suite can be found with the source on the
[GitHub](https://github.com/PyFFTW/PyFFTW) repository or with the source
distribution on [PyPI](https://pypi.org/).

The documentation can be found on
[Read the Docs](https://pyfftw.readthedocs.io) the source is on
[GitHub](https://github.com/PyFFTW/PyFFTW) and the python package index page
[PyPI](https://pypi.org/). Issues and questions can be raised at the
[GitHub Issues](https://github.com/PyFFTW/PyFFTW/issues) page.

## Requirements (i.e. what it was designed for)

- [Python](https://python.org) >= 3.9 (lower versions *may* work)
- [Numpy](https://www.numpy.org) >= 1.20 (lower versions *may* work)
- [FFTW](https://www.fftw.org) >= 3.3 (lower versions *may* work) libraries for
  single, double, and long double precision in serial and multithreading
  (pthreads or openMP) versions.
- [Cython](https://cython.org) >= 0.29

(install these as much as possible with your preferred package manager).

In practice, pyFFTW *may* work with older versions of these dependencies, but
it is not tested against them.

We build wheels for PyPy 3.9, but this platform has not been tested.

## Optional Dependencies

- [Scipy](https://www.scipy.org) >= 1.8
- [Dask](https://dask.pydata.org) >= 1.0

Scipy and Dask are only required in order to use their respective interfaces.
In practice, older versions may work, but they are not tested against.

## Installation

We recommend *not* building from github, but using the release on the python
package index with tools such as pip:

    pip install pyfftw

Pre-built binary wheels for 64-bit Python on Linux, Mac OS X and Windows are
available on the [PyPI](https://pypi.org/) page for all supported Python versions.
Note that we only support binaries for 64-bit Python. 32-bit and ARM architectures have
prebuilt wheels for some configurations - see below.

Note that prior to Python 3.9, the Windows installation defaulted to being 32-bit
even on 64-bit Windows, so if you are having problems installing using pip
(typically with an error message like `ERROR: Failed building wheel for pyfftw`)
then please check your Python version.

Installation from PyPI may also work on other systems when the FFTW libraries
are available, but other platforms have not been tested.

Alternatively, users of the [conda](https://conda.io/docs/) package manager can
install from the [conda-forge](https://conda-forge.org/) channel via:

    conda install -c conda-forge pyfftw

Read on if you do want to build from source...

## Wheels

Prebuilt wheels are available for the following configurations:

|          Python version          | Windows (32 bit) | Windows (64 bit) | Windows ARM (64 bit) | MacOS | MacOS ARM | Linux (64 bit) | Linux ARM (64 bit) |
| :------------------------------: | :--------------: | :--------------: | :------------------: | :---: | :-------- | :------------: | :----------------: |
|   CPython < 3.9 (unsupported)    |        ❌        |        ❌        |          ❌          |  ❌   | ❌        |       ❌       |         ❌         |
|           CPython 3.9            |        ✔        |        ✔        |          ❌          |  ✔   | ✔        |       ✔       |         ✔         |
|           CPython 3.10           |        ✔        |        ✔        |          ❌          |  ✔   | ✔        |       ✔       |         ✔         |
|           CPython 3.11           |        ✔        |        ✔        |          ❌          |  ✔   | ✔        |       ✔       |         ✔         |
|           CPython 3.12           |        ✔        |        ✔        |          ❌          |  ✔   | ✔        |       ✔       |         ✔         |
|     PyPy < 3.9 (unsupported)     |        ❌        |        ❌        |          ❌          |  ❌   | ❌        |      ❌       |         ❌         |
|             PyPy 3.9             |        ❌        |        ✔        |          ❌          |  ✔   | ✔        |       ✔       |         ❌         |
| PyPy > 3.9 (unsupported for now) |        ❌        |        ❌        |          ❌          |  ❌   | ❌        |        ❌       |         ❌         |

Note that Linux 32-bit wheels are available only for pyFFTW <= 0.13.1.

If your configuration does not match one of these you will have to build `pyfft` from source yourself.
See instructions below.

## Building

To build in place:

    pip install -e . -v

That cythonizes the python extension and builds it into a shared library
which is placed in ``pyfftw/``. The directory can then be treated as a python
package.

After you've run ``setup.py`` with cython available, you then have a
normal C extension in the ``pyfftw`` directory.
Further building does not depend on cython (as long as the .c file remains).

During configuration the available FFTW libraries are detected, so pay attention
to the output when running ``setup.py``. On certain platforms, for example the
long double precision is not available. pyFFTW still builds fine but will fail
at runtime if asked to perform a transform involving long double precision.

To build against FFTW libraries at non standard location, [some compilers are
sensitive to the environment
variables](https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html)
`CPATH` and `LIBRARY_PATH`. Moreover, you can also use `PYFFTW_INCLUDE` and
`PYFFTW_LIB_DIR`. If the FFTW libraries still cannot be found, you might also
need to set the environment variable `CC` to build with the compiler used to
compile the libraries.

Regarding multithreading, if both posix and openMP FFTW libs are available, the
openMP libs are preferred. This preference can be reversed by defining the
environment variable ``PYFFTW_USE_PTHREADS`` prior to building. If neither
option is available, pyFFTW works in serial mode only.

For more ways of building and installing, see the
[distutils documentation](http://docs.python.org/distutils/builtdist.html)
and [setuptools documentation](https://setuptools.readthedocs.io).

### Platform specific build info

#### Windows

To build for windows from source, download the fftw dlls for your system and the
header file from [here](http://www.fftw.org/install/windows.html) (they're in
a zip file) and place them in the pyfftw directory. The files are
``libfftw3-3.dll``, ``libfftw3l-3.dll``, ``libfftw3f-3.dll``. These libs use
pthreads for multithreading. If you're using a version of FFTW other than 3.3,
it may be necessary to copy ``fftw3.h`` into ``include\win``.

The builds on PyPI use mingw for the 32-bit release and the Windows SDK
C++ compiler for the 64-bit release. The scripts should handle this
automatically. If you want to compile for 64-bit Windows, you have to use
the MS Visual C++ compiler. Set up your environment as described
[here](https://github.com/cython/cython/wiki/CythonExtensionsOnWindows) and then
run ``setup.py`` with the version of python you wish to target and a suitable
build command.

For using the MS Visual C++ compiler, you'll need to create a set of
suitable ``.lib`` files as described on the
[FFTW page](http://www.fftw.org/install/windows.html).

#### Mac OSX

Install FFTW from [homebrew](http://brew.sh):

    brew install fftw

Set temporary environmental variables, such that pyfftw finds fftw:

    export DYLD_LIBRARY_PATH=/usr/local/lib
    export LDFLAGS="-L/usr/local/lib"
    export CFLAGS="-I/usr/local/include"

Now install pyfftw from pip:

    pip install pyfftw

It has been suggested that [macports](https://www.macports.org) might also work
fine. You should then replace the LD environmental variables above with the
right ones.

- DYLD - path for libfftw3.dylib etc - ``find /usr -name libfftw3.dylib``
- LDFLAGS - path for fftw3.h - ``find /usr -name fftw3.h``

#### FreeBSD

Install FFTW from ports tree or ``pkg``:

    - math/fftw3
    - math/fftw3-float
    - math/fftw3-long

Please install all of them, if possible.

## Testing

Tests should be run using `pytest`. Install using:

```sh
pip install pytest
```

To run tests against the installed (compiled) `pyFFTW` wheel, use:

```sh
pytest --import-mode=append tests/
```

**Note**: `--import-mode=append` is needed to prevent `pytest` patching `sys.path`
in a way that resolves the local installation over the wheel installation.

## Contributions

Contributions are always welcome and valued. The primary restriction on
accepting contributions is that they are exhaustively tested. The bulk of
pyFFTW has been developed in a test-driven way (i.e. the test to be
satisfied is written before the code). I strongly encourage potential
contributors to adopt such an approach.

See some of my philosophy on testing in development [here]
(https://hgomersall.wordpress.com/2014/10/03/from-test-driven-development-and-specifications).
If you want to argue with the philosophy, there is probably a good place to
do it.

New contributions should adhere to
[PEP 8](https://www.python.org/dev/peps/pep-0008), but this is only weakly
enforced (there is loads of legacy stuff that breaks it, and things like a
single trailing whitespace is not a big deal).

The best place to start with contributing is by raising an issue detailing the
specifics of what you wish to achieve (there should be a clear use-case for
any new functionality). I tend to respond pretty quickly and am happy to help
where I can with any conceptual issues.

I suggest reading the issues already open in order that you know where things
might be heading, or what others are working on.

### Use PDM to setup a virtual environment for the development of pyFFTW

[PDM], which can be for example installed with [Pipx], can be used to setup a virtual
environment `.venv` for the development of pyFFTW and install pyFFTW in editable mode.

```sh
pdm sync --clean -v
```

This environment is described in the file `pyproject.toml` and the exact versions of
the packages are listed in a lock file `pdm.lock`. Maintainers can update the lockfile
by running (typically in a PR before each release)

```sh
pdm lock
```

[pdm]: https://pdm-project.org
[pipx]: https://github.com/pypa/pipx

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyFFTW",
    "maintainer": null,
    "docs_url": "https://pythonhosted.org/pyFFTW/",
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": "Henry Gomersall <heng@kedevelopments.co.uk>",
    "download_url": "https://files.pythonhosted.org/packages/4b/3f/ee1bc44b080fc1e81d293cd07bed563d254bc1997d63a3b8053804a87dfd/pyfftw-0.15.0.tar.gz",
    "platform": null,
    "description": "### Current Build Status\n\n| GitHub Actions                                                                                                                                                                                                | Read the Docs                                                                                                                           |\n| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |\n| [![Build Wheels, Test and Release](https://github.com/pyFFTW/pyFFTW/actions/workflows/wheel_tests_and_release.yml/badge.svg)](https://github.com/pyFFTW/pyFFTW/actions/workflows/wheel_tests_and_release.yml) | [![read_the_docs](https://readthedocs.org/projects/pyfftw/badge/?version=latest)](http://pyfftw.readthedocs.io/en/latest/?badge=latest) |\n\n### Conda-forge Status\n\n[![Linux](https://img.shields.io/circleci/project/github/conda-forge/pyfftw-feedstock/master.svg?label=Linux)](https://circleci.com/gh/conda-forge/pyfftw-feedstock) [![OSX](https://img.shields.io/travis/conda-forge/pyfftw-feedstock/master.svg?label=macOS)](https://travis-ci.org/conda-forge/pyfftw-feedstock) [![Windows](https://img.shields.io/appveyor/ci/conda-forge/pyfftw-feedstock/master.svg?label=Windows)](https://ci.appveyor.com/project/conda-forge/pyfftw-feedstock/branch/master)\n\n\n### Conda-forge Info\n\n| Name                                                                                                             | Downloads                                                                                                             | Version                                                                                                             | Platforms                                                                                                             |\n| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| [![Conda Recipe](https://img.shields.io/badge/recipe-pyfftw-green.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyfftw.svg)](https://anaconda.org/conda-forge/pyfftw) |\n\n# PyFFTW\n\npyFFTW is a pythonic wrapper around [FFTW 3](https://www.fftw.org), the speedy\nFFT library.  The ultimate aim is to present a unified interface for all the\npossible transforms that FFTW can perform.\n\nBoth the complex DFT and the real DFT are supported, as well as on arbitrary\naxes of arbitrary shaped and strided arrays, which makes it almost\nfeature equivalent to standard and real FFT functions of ``numpy.fft``\n(indeed, it supports the ``clongdouble`` dtype which ``numpy.fft`` does not).\n\nWisdom import and export now works fairly reliably.\n\nOperating FFTW in multithreaded mode is supported.\n\npyFFTW implements the numpy and scipy fft interfaces in order for users to\ntake advantage of the speed of FFTW with minimal code modifications.\n\nA comprehensive unittest suite can be found with the source on the\n[GitHub](https://github.com/PyFFTW/PyFFTW) repository or with the source\ndistribution on [PyPI](https://pypi.org/).\n\nThe documentation can be found on\n[Read the Docs](https://pyfftw.readthedocs.io) the source is on\n[GitHub](https://github.com/PyFFTW/PyFFTW) and the python package index page\n[PyPI](https://pypi.org/). Issues and questions can be raised at the\n[GitHub Issues](https://github.com/PyFFTW/PyFFTW/issues) page.\n\n## Requirements (i.e. what it was designed for)\n\n- [Python](https://python.org) >= 3.9 (lower versions *may* work)\n- [Numpy](https://www.numpy.org) >= 1.20 (lower versions *may* work)\n- [FFTW](https://www.fftw.org) >= 3.3 (lower versions *may* work) libraries for\n  single, double, and long double precision in serial and multithreading\n  (pthreads or openMP) versions.\n- [Cython](https://cython.org) >= 0.29\n\n(install these as much as possible with your preferred package manager).\n\nIn practice, pyFFTW *may* work with older versions of these dependencies, but\nit is not tested against them.\n\nWe build wheels for PyPy 3.9, but this platform has not been tested.\n\n## Optional Dependencies\n\n- [Scipy](https://www.scipy.org) >= 1.8\n- [Dask](https://dask.pydata.org) >= 1.0\n\nScipy and Dask are only required in order to use their respective interfaces.\nIn practice, older versions may work, but they are not tested against.\n\n## Installation\n\nWe recommend *not* building from github, but using the release on the python\npackage index with tools such as pip:\n\n    pip install pyfftw\n\nPre-built binary wheels for 64-bit Python on Linux, Mac OS X and Windows are\navailable on the [PyPI](https://pypi.org/) page for all supported Python versions.\nNote that we only support binaries for 64-bit Python. 32-bit and ARM architectures have\nprebuilt wheels for some configurations - see below.\n\nNote that prior to Python 3.9, the Windows installation defaulted to being 32-bit\neven on 64-bit Windows, so if you are having problems installing using pip\n(typically with an error message like `ERROR: Failed building wheel for pyfftw`)\nthen please check your Python version.\n\nInstallation from PyPI may also work on other systems when the FFTW libraries\nare available, but other platforms have not been tested.\n\nAlternatively, users of the [conda](https://conda.io/docs/) package manager can\ninstall from the [conda-forge](https://conda-forge.org/) channel via:\n\n    conda install -c conda-forge pyfftw\n\nRead on if you do want to build from source...\n\n## Wheels\n\nPrebuilt wheels are available for the following configurations:\n\n|          Python version          | Windows (32 bit) | Windows (64 bit) | Windows ARM (64 bit) | MacOS | MacOS ARM | Linux (64 bit) | Linux ARM (64 bit) |\n| :------------------------------: | :--------------: | :--------------: | :------------------: | :---: | :-------- | :------------: | :----------------: |\n|   CPython < 3.9 (unsupported)    |        \u274c        |        \u274c        |          \u274c          |  \u274c   | \u274c        |       \u274c       |         \u274c         |\n|           CPython 3.9            |        \u2714        |        \u2714        |          \u274c          |  \u2714   | \u2714        |       \u2714       |         \u2714         |\n|           CPython 3.10           |        \u2714        |        \u2714        |          \u274c          |  \u2714   | \u2714        |       \u2714       |         \u2714         |\n|           CPython 3.11           |        \u2714        |        \u2714        |          \u274c          |  \u2714   | \u2714        |       \u2714       |         \u2714         |\n|           CPython 3.12           |        \u2714        |        \u2714        |          \u274c          |  \u2714   | \u2714        |       \u2714       |         \u2714         |\n|     PyPy < 3.9 (unsupported)     |        \u274c        |        \u274c        |          \u274c          |  \u274c   | \u274c        |      \u274c       |         \u274c         |\n|             PyPy 3.9             |        \u274c        |        \u2714        |          \u274c          |  \u2714   | \u2714        |       \u2714       |         \u274c         |\n| PyPy > 3.9 (unsupported for now) |        \u274c        |        \u274c        |          \u274c          |  \u274c   | \u274c        |        \u274c       |         \u274c         |\n\nNote that Linux 32-bit wheels are available only for pyFFTW <= 0.13.1.\n\nIf your configuration does not match one of these you will have to build `pyfft` from source yourself.\nSee instructions below.\n\n## Building\n\nTo build in place:\n\n    pip install -e . -v\n\nThat cythonizes the python extension and builds it into a shared library\nwhich is placed in ``pyfftw/``. The directory can then be treated as a python\npackage.\n\nAfter you've run ``setup.py`` with cython available, you then have a\nnormal C extension in the ``pyfftw`` directory.\nFurther building does not depend on cython (as long as the .c file remains).\n\nDuring configuration the available FFTW libraries are detected, so pay attention\nto the output when running ``setup.py``. On certain platforms, for example the\nlong double precision is not available. pyFFTW still builds fine but will fail\nat runtime if asked to perform a transform involving long double precision.\n\nTo build against FFTW libraries at non standard location, [some compilers are\nsensitive to the environment\nvariables](https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html)\n`CPATH` and `LIBRARY_PATH`. Moreover, you can also use `PYFFTW_INCLUDE` and\n`PYFFTW_LIB_DIR`. If the FFTW libraries still cannot be found, you might also\nneed to set the environment variable `CC` to build with the compiler used to\ncompile the libraries.\n\nRegarding multithreading, if both posix and openMP FFTW libs are available, the\nopenMP libs are preferred. This preference can be reversed by defining the\nenvironment variable ``PYFFTW_USE_PTHREADS`` prior to building. If neither\noption is available, pyFFTW works in serial mode only.\n\nFor more ways of building and installing, see the\n[distutils documentation](http://docs.python.org/distutils/builtdist.html)\nand [setuptools documentation](https://setuptools.readthedocs.io).\n\n### Platform specific build info\n\n#### Windows\n\nTo build for windows from source, download the fftw dlls for your system and the\nheader file from [here](http://www.fftw.org/install/windows.html) (they're in\na zip file) and place them in the pyfftw directory. The files are\n``libfftw3-3.dll``, ``libfftw3l-3.dll``, ``libfftw3f-3.dll``. These libs use\npthreads for multithreading. If you're using a version of FFTW other than 3.3,\nit may be necessary to copy ``fftw3.h`` into ``include\\win``.\n\nThe builds on PyPI use mingw for the 32-bit release and the Windows SDK\nC++ compiler for the 64-bit release. The scripts should handle this\nautomatically. If you want to compile for 64-bit Windows, you have to use\nthe MS Visual C++ compiler. Set up your environment as described\n[here](https://github.com/cython/cython/wiki/CythonExtensionsOnWindows) and then\nrun ``setup.py`` with the version of python you wish to target and a suitable\nbuild command.\n\nFor using the MS Visual C++ compiler, you'll need to create a set of\nsuitable ``.lib`` files as described on the\n[FFTW page](http://www.fftw.org/install/windows.html).\n\n#### Mac OSX\n\nInstall FFTW from [homebrew](http://brew.sh):\n\n    brew install fftw\n\nSet temporary environmental variables, such that pyfftw finds fftw:\n\n    export DYLD_LIBRARY_PATH=/usr/local/lib\n    export LDFLAGS=\"-L/usr/local/lib\"\n    export CFLAGS=\"-I/usr/local/include\"\n\nNow install pyfftw from pip:\n\n    pip install pyfftw\n\nIt has been suggested that [macports](https://www.macports.org) might also work\nfine. You should then replace the LD environmental variables above with the\nright ones.\n\n- DYLD - path for libfftw3.dylib etc - ``find /usr -name libfftw3.dylib``\n- LDFLAGS - path for fftw3.h - ``find /usr -name fftw3.h``\n\n#### FreeBSD\n\nInstall FFTW from ports tree or ``pkg``:\n\n    - math/fftw3\n    - math/fftw3-float\n    - math/fftw3-long\n\nPlease install all of them, if possible.\n\n## Testing\n\nTests should be run using `pytest`. Install using:\n\n```sh\npip install pytest\n```\n\nTo run tests against the installed (compiled) `pyFFTW` wheel, use:\n\n```sh\npytest --import-mode=append tests/\n```\n\n**Note**: `--import-mode=append` is needed to prevent `pytest` patching `sys.path`\nin a way that resolves the local installation over the wheel installation.\n\n## Contributions\n\nContributions are always welcome and valued. The primary restriction on\naccepting contributions is that they are exhaustively tested. The bulk of\npyFFTW has been developed in a test-driven way (i.e. the test to be\nsatisfied is written before the code). I strongly encourage potential\ncontributors to adopt such an approach.\n\nSee some of my philosophy on testing in development [here]\n(https://hgomersall.wordpress.com/2014/10/03/from-test-driven-development-and-specifications).\nIf you want to argue with the philosophy, there is probably a good place to\ndo it.\n\nNew contributions should adhere to\n[PEP 8](https://www.python.org/dev/peps/pep-0008), but this is only weakly\nenforced (there is loads of legacy stuff that breaks it, and things like a\nsingle trailing whitespace is not a big deal).\n\nThe best place to start with contributing is by raising an issue detailing the\nspecifics of what you wish to achieve (there should be a clear use-case for\nany new functionality). I tend to respond pretty quickly and am happy to help\nwhere I can with any conceptual issues.\n\nI suggest reading the issues already open in order that you know where things\nmight be heading, or what others are working on.\n\n### Use PDM to setup a virtual environment for the development of pyFFTW\n\n[PDM], which can be for example installed with [Pipx], can be used to setup a virtual\nenvironment `.venv` for the development of pyFFTW and install pyFFTW in editable mode.\n\n```sh\npdm sync --clean -v\n```\n\nThis environment is described in the file `pyproject.toml` and the exact versions of\nthe packages are listed in a lock file `pdm.lock`. Maintainers can update the lockfile\nby running (typically in a PR before each release)\n\n```sh\npdm lock\n```\n\n[pdm]: https://pdm-project.org\n[pipx]: https://github.com/pypa/pipx\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms.",
    "version": "0.15.0",
    "project_urls": {
        "Homepage": "https://github.com/pyFFTW/pyFFTW"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "846699e0497a2dc8ff67aca6c23734895662b1885fce150a836de60ba9644ec6",
                "md5": "1f96b220ec587ea533142d831c01a635",
                "sha256": "2c35205209dde186669b90eeda92ca6837dfff4814edc5aebb01536b32760eb0"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1f96b220ec587ea533142d831c01a635",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 2835727,
            "upload_time": "2024-11-06T16:00:34",
            "upload_time_iso_8601": "2024-11-06T16:00:34.678406Z",
            "url": "https://files.pythonhosted.org/packages/84/66/99e0497a2dc8ff67aca6c23734895662b1885fce150a836de60ba9644ec6/pyFFTW-0.15.0-cp310-cp310-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b32a9eb5c7aa582bdb0ba25d0ef522281ffa5ff0e34a1cc9d0fb564ee019239a",
                "md5": "e27c88fe321f22cfff9fd7016c942abf",
                "sha256": "28bb5888342114950b2d7df268264863c5644f34130a7fdc0acabd05c885d486"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e27c88fe321f22cfff9fd7016c942abf",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1272455,
            "upload_time": "2024-11-06T16:00:36",
            "upload_time_iso_8601": "2024-11-06T16:00:36.636574Z",
            "url": "https://files.pythonhosted.org/packages/b3/2a/9eb5c7aa582bdb0ba25d0ef522281ffa5ff0e34a1cc9d0fb564ee019239a/pyFFTW-0.15.0-cp310-cp310-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af13e1c59f3a659ce6712d999b5315c22e547a75f1cc5f171f3cdb9ceae13474",
                "md5": "50117a8eab774e5673bc7d22a5d2ab44",
                "sha256": "5748f2d85d790684efd895ce8f3611cceedb75fde944c4788753e0ba1a88637a"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "50117a8eab774e5673bc7d22a5d2ab44",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 2449453,
            "upload_time": "2024-11-06T16:00:38",
            "upload_time_iso_8601": "2024-11-06T16:00:38.491656Z",
            "url": "https://files.pythonhosted.org/packages/af/13/e1c59f3a659ce6712d999b5315c22e547a75f1cc5f171f3cdb9ceae13474/pyFFTW-0.15.0-cp310-cp310-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b6b655a5033fd41d7b69d3ff9991d7f170f1f90a4463953a0c85011c7c87d739",
                "md5": "19257eb669cf7aafd223e5b73d4dd9be",
                "sha256": "f8fe9c361bb69f58c9488d4d267047f94cfcea89ba7cd1ce6a148f807be88c6c"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "19257eb669cf7aafd223e5b73d4dd9be",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3054268,
            "upload_time": "2024-11-06T16:00:39",
            "upload_time_iso_8601": "2024-11-06T16:00:39.891869Z",
            "url": "https://files.pythonhosted.org/packages/b6/b6/55a5033fd41d7b69d3ff9991d7f170f1f90a4463953a0c85011c7c87d739/pyFFTW-0.15.0-cp310-cp310-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5af932cc147de14e30fd674a53097fc11e12a161bf88d120fbc4b5a3013e3ef1",
                "md5": "054c7358c7c96b19aa46741070a4467c",
                "sha256": "79a90799d4a4fc8d2c06b545e29a5e0575df81d0b9d131b20476a287f18817ee"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "054c7358c7c96b19aa46741070a4467c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 2234523,
            "upload_time": "2024-11-06T16:00:41",
            "upload_time_iso_8601": "2024-11-06T16:00:41.222566Z",
            "url": "https://files.pythonhosted.org/packages/5a/f9/32cc147de14e30fd674a53097fc11e12a161bf88d120fbc4b5a3013e3ef1/pyFFTW-0.15.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0dcc469ccb4a06fa530cb34d7c61885cede184c3c0f39c873fb14bbc6c0450c",
                "md5": "20773a5af0302d2879dbfe802c98882e",
                "sha256": "80ed625c8e8b6c1ba3ba6741ca0c7584c62ac0d99d9d33d7b4617c5087977aa0"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "20773a5af0302d2879dbfe802c98882e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 2642503,
            "upload_time": "2024-11-06T16:00:42",
            "upload_time_iso_8601": "2024-11-06T16:00:42.924342Z",
            "url": "https://files.pythonhosted.org/packages/e0/dc/c469ccb4a06fa530cb34d7c61885cede184c3c0f39c873fb14bbc6c0450c/pyFFTW-0.15.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "176e325833415acbb267b1533ea8c5dcd243df8b5bb3ecbc6e42778514859dfe",
                "md5": "7c4a21f2f3cf1478dd3a3a6a9f6afb27",
                "sha256": "facabac06cb2300fdfcb1cfab9af70b24380d24a725a9b4dbf8cdadf04c1a6c0"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7c4a21f2f3cf1478dd3a3a6a9f6afb27",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 2836851,
            "upload_time": "2024-11-06T16:00:45",
            "upload_time_iso_8601": "2024-11-06T16:00:45.177432Z",
            "url": "https://files.pythonhosted.org/packages/17/6e/325833415acbb267b1533ea8c5dcd243df8b5bb3ecbc6e42778514859dfe/pyFFTW-0.15.0-cp311-cp311-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11cf3e6e1fbb4dda9718682b38109018240a631f9078f659eea4add2189a6e6f",
                "md5": "4f219360e5ac1e4f028cc9c6b12c8056",
                "sha256": "730e86d23ea52a511fd3b0a0b8206dbe9f9f017522dabb838a7ca876e442ea8a"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4f219360e5ac1e4f028cc9c6b12c8056",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1273108,
            "upload_time": "2024-11-06T16:00:46",
            "upload_time_iso_8601": "2024-11-06T16:00:46.607665Z",
            "url": "https://files.pythonhosted.org/packages/11/cf/3e6e1fbb4dda9718682b38109018240a631f9078f659eea4add2189a6e6f/pyFFTW-0.15.0-cp311-cp311-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41b869fa1a05a9c1830fefa3805c0b67f43a5a6fa3d83950f2ab088b80826378",
                "md5": "76ad85f41988afb998f54f5fc7ca386e",
                "sha256": "b8ab3ad5b6fadf64e34be2fdc34c9cc2b767b33c7a1b0f3e778f4b3fac0b2566"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "76ad85f41988afb998f54f5fc7ca386e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 2506868,
            "upload_time": "2024-11-06T16:00:48",
            "upload_time_iso_8601": "2024-11-06T16:00:48.197321Z",
            "url": "https://files.pythonhosted.org/packages/41/b8/69fa1a05a9c1830fefa3805c0b67f43a5a6fa3d83950f2ab088b80826378/pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29caf9035218cbf7986f214bbe57bfb1f2951d344a0baf601d8ee065d0422e07",
                "md5": "0c082887faa4a39cb7c69847e7d9a606",
                "sha256": "076c42a2b8841fc06fc592d812bfa41a85355dc7f79b6f51016ce981a35efc97"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0c082887faa4a39cb7c69847e7d9a606",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3111543,
            "upload_time": "2024-11-06T16:00:50",
            "upload_time_iso_8601": "2024-11-06T16:00:50.044908Z",
            "url": "https://files.pythonhosted.org/packages/29/ca/f9035218cbf7986f214bbe57bfb1f2951d344a0baf601d8ee065d0422e07/pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1e688c56e66ab9903440a41c3859409c2ec06b218c187c859c432d954002e778",
                "md5": "deadf0544d679dd11868e4fb01986403",
                "sha256": "5c50580ac16173fb547d18ad089148f030ef48a0f1f3b2faf3bb522b7f9fd8b6"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "deadf0544d679dd11868e4fb01986403",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 2234192,
            "upload_time": "2024-11-06T16:00:52",
            "upload_time_iso_8601": "2024-11-06T16:00:52.230898Z",
            "url": "https://files.pythonhosted.org/packages/1e/68/8c56e66ab9903440a41c3859409c2ec06b218c187c859c432d954002e778/pyFFTW-0.15.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91cf1b8ba1f0c8fb91f2caaf0ff30011a8289d7732b21cfc812b826222cafbaa",
                "md5": "ced4e4613d04935781aa611496d90733",
                "sha256": "553d62715e8e9ad20c6a6aa556846d785488f16fa2a518abcac58ae3c7087654"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ced4e4613d04935781aa611496d90733",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 2643265,
            "upload_time": "2024-11-06T16:00:53",
            "upload_time_iso_8601": "2024-11-06T16:00:53.542770Z",
            "url": "https://files.pythonhosted.org/packages/91/cf/1b8ba1f0c8fb91f2caaf0ff30011a8289d7732b21cfc812b826222cafbaa/pyFFTW-0.15.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "085d5d30a3a39bbe1e1d083d8efe23a62f1deacc445a82e3a55289b820f0ad9d",
                "md5": "639ded7c61f5f17deba6d901d56bf164",
                "sha256": "27410a9ac0e4ad7821a564549be031d5422d9a96bb35ea63d2d324774f709b65"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "639ded7c61f5f17deba6d901d56bf164",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2833540,
            "upload_time": "2024-11-06T16:00:54",
            "upload_time_iso_8601": "2024-11-06T16:00:54.985688Z",
            "url": "https://files.pythonhosted.org/packages/08/5d/5d30a3a39bbe1e1d083d8efe23a62f1deacc445a82e3a55289b820f0ad9d/pyFFTW-0.15.0-cp312-cp312-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4bdcff9969669fcbff0972c1a96a116fa7efad763d136fc9a58f6112bf770688",
                "md5": "afdee4f3167a9368974585affe11cc89",
                "sha256": "cd8bfb4a9e844693f8dd92ba97bc91d27404716b70580f846e80d74f6b092ffe"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "afdee4f3167a9368974585affe11cc89",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1270715,
            "upload_time": "2024-11-06T16:00:56",
            "upload_time_iso_8601": "2024-11-06T16:00:56.743304Z",
            "url": "https://files.pythonhosted.org/packages/4b/dc/ff9969669fcbff0972c1a96a116fa7efad763d136fc9a58f6112bf770688/pyFFTW-0.15.0-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c71c30bc73495966285fdd3e79a4a7482dbdd863e505bf3021a455bf7b923423",
                "md5": "e4d0111c627c3f53d17bfb45d1a97be1",
                "sha256": "7d08f75ed35c0af097333b2de368a0b30460a3e7e7bed47780aac3c27f9ec77b"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e4d0111c627c3f53d17bfb45d1a97be1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2499664,
            "upload_time": "2024-11-06T16:00:58",
            "upload_time_iso_8601": "2024-11-06T16:00:58.166666Z",
            "url": "https://files.pythonhosted.org/packages/c7/1c/30bc73495966285fdd3e79a4a7482dbdd863e505bf3021a455bf7b923423/pyFFTW-0.15.0-cp312-cp312-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d81e5f5769f08aa3efa9527b328a9ebac7a2817f81a2b0f2266e79276686f31",
                "md5": "8c1117c6063831fe4e549ca8a552c1fd",
                "sha256": "7ccae636ad163133bc5335d05f56afdb0c756ee013692c667b822a11e188a446"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8c1117c6063831fe4e549ca8a552c1fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3100310,
            "upload_time": "2024-11-06T16:00:59",
            "upload_time_iso_8601": "2024-11-06T16:00:59.548252Z",
            "url": "https://files.pythonhosted.org/packages/6d/81/e5f5769f08aa3efa9527b328a9ebac7a2817f81a2b0f2266e79276686f31/pyFFTW-0.15.0-cp312-cp312-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "605b18c12dfb07b82a93b9b459380e2f118afd139cc564e1575624794b15e68d",
                "md5": "25515867f76f253fc02cc918291b83b4",
                "sha256": "b4963a55b442c859ede2d247d84daa71c6c01b64e0d9b2730f5635b962777fb2"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "25515867f76f253fc02cc918291b83b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2229927,
            "upload_time": "2024-11-06T16:01:01",
            "upload_time_iso_8601": "2024-11-06T16:01:01.315352Z",
            "url": "https://files.pythonhosted.org/packages/60/5b/18c12dfb07b82a93b9b459380e2f118afd139cc564e1575624794b15e68d/pyFFTW-0.15.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ddd2cb3fc49bffb2f7cb49da6dbc67888c9c55df1aca6d11c6d1d000e37fc64f",
                "md5": "b9a99907a307c1a0e934257386f6fdf3",
                "sha256": "6ace61f34f0dd7973207c31ce16fd7bedf9a178bb956f157559f13384f219713"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b9a99907a307c1a0e934257386f6fdf3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 2641096,
            "upload_time": "2024-11-06T16:01:02",
            "upload_time_iso_8601": "2024-11-06T16:01:02.928251Z",
            "url": "https://files.pythonhosted.org/packages/dd/d2/cb3fc49bffb2f7cb49da6dbc67888c9c55df1aca6d11c6d1d000e37fc64f/pyFFTW-0.15.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a10d90821a720638cbef79319463e3ce5d98f24153cee53316d4ecc1d8c0400d",
                "md5": "d2e3e773caad29ea7237d47a6220ff48",
                "sha256": "cfbeb106877db1b6bf527735647b861c86ac846ff47671d0d855a9be2de83368"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d2e3e773caad29ea7237d47a6220ff48",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 2832851,
            "upload_time": "2024-11-06T16:01:04",
            "upload_time_iso_8601": "2024-11-06T16:01:04.301689Z",
            "url": "https://files.pythonhosted.org/packages/a1/0d/90821a720638cbef79319463e3ce5d98f24153cee53316d4ecc1d8c0400d/pyFFTW-0.15.0-cp313-cp313-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12b7e625f0cdb2bd65aa43ee35ce8cac1b0abc6c12871cd87fa83e404d82fd1d",
                "md5": "221d98c822aec4a4c8c36001e8e44e12",
                "sha256": "6d8913036a48ebcc9e3e1a315a6607e5cc31af4aee395aae180ff644c4658bbb"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "221d98c822aec4a4c8c36001e8e44e12",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 1269651,
            "upload_time": "2024-11-06T16:01:06",
            "upload_time_iso_8601": "2024-11-06T16:01:06.419582Z",
            "url": "https://files.pythonhosted.org/packages/12/b7/e625f0cdb2bd65aa43ee35ce8cac1b0abc6c12871cd87fa83e404d82fd1d/pyFFTW-0.15.0-cp313-cp313-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f66d12a9629908008ed97446c44ca2177c8f59e570a445da4136fdbb9e8db1c",
                "md5": "81358595561106738d13e3c2ef4bb9f7",
                "sha256": "05324c8c092aa43868554daf6ddd7fd23eee18cd284ab68e749c62427c662737"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "81358595561106738d13e3c2ef4bb9f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 2496935,
            "upload_time": "2024-11-06T16:01:07",
            "upload_time_iso_8601": "2024-11-06T16:01:07.820358Z",
            "url": "https://files.pythonhosted.org/packages/0f/66/d12a9629908008ed97446c44ca2177c8f59e570a445da4136fdbb9e8db1c/pyFFTW-0.15.0-cp313-cp313-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "adc4adcf010b151564401e3d401602b0e0cacae1e7cb816f0207397c3ddec626",
                "md5": "f4026723deb7ad9273fd78d5ed12b8ec",
                "sha256": "474f4a0ccfddfdfbe3e4a610b1c8f5968b58edf44434bf9d08ea52108a72df54"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f4026723deb7ad9273fd78d5ed12b8ec",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3096170,
            "upload_time": "2024-11-06T16:01:09",
            "upload_time_iso_8601": "2024-11-06T16:01:09.258646Z",
            "url": "https://files.pythonhosted.org/packages/ad/c4/adcf010b151564401e3d401602b0e0cacae1e7cb816f0207397c3ddec626/pyFFTW-0.15.0-cp313-cp313-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b296b1eaad07d5eaf026e2ed0c6f2afdf825628706162071d2665b3824727346",
                "md5": "d7560c59ac16cda88a8f62653f64cf3d",
                "sha256": "40f8f3341546264178a8d9e8736e91554884595a683b71f8db8399907330f47d"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "d7560c59ac16cda88a8f62653f64cf3d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 2229713,
            "upload_time": "2024-11-06T16:01:10",
            "upload_time_iso_8601": "2024-11-06T16:01:10.902665Z",
            "url": "https://files.pythonhosted.org/packages/b2/96/b1eaad07d5eaf026e2ed0c6f2afdf825628706162071d2665b3824727346/pyFFTW-0.15.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e923d06a3e5b549f7537ada2b1fc2e5f7c05c38df70c843d463bc469812b1ebd",
                "md5": "6539c3440a94bd565d69f0f0f8a3dad9",
                "sha256": "bf04458c5d2fbfe5da270a4b667c59c5792cbe39300379d886acd8ea97fc55cc"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6539c3440a94bd565d69f0f0f8a3dad9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 2640821,
            "upload_time": "2024-11-06T16:01:12",
            "upload_time_iso_8601": "2024-11-06T16:01:12.234855Z",
            "url": "https://files.pythonhosted.org/packages/e9/23/d06a3e5b549f7537ada2b1fc2e5f7c05c38df70c843d463bc469812b1ebd/pyFFTW-0.15.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f25b060fb5f48773dc1be3abd4d495a7b0fd02aeb6be57cb6bac214d1fd75447",
                "md5": "1ebe3efbf60a92e8a7711d7448803796",
                "sha256": "e94576643406ffd4dc29851e4d493c8bfb3bde8390661b7fced050c1e6ff99ac"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1ebe3efbf60a92e8a7711d7448803796",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.10",
            "size": 2810336,
            "upload_time": "2024-11-06T16:01:14",
            "upload_time_iso_8601": "2024-11-06T16:01:14.050614Z",
            "url": "https://files.pythonhosted.org/packages/f2/5b/060fb5f48773dc1be3abd4d495a7b0fd02aeb6be57cb6bac214d1fd75447/pyFFTW-0.15.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "465fee1692303b7cc15cdaf56861de6da8e12d001f4c45883832ffd26827b777",
                "md5": "fad2c2d78b33d8dc252870f0da28e9a8",
                "sha256": "ca1dbb5e86121f24b637413584224dda129774d661be1640f092156f4088b3bf"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fad2c2d78b33d8dc252870f0da28e9a8",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.10",
            "size": 2570190,
            "upload_time": "2024-11-06T16:01:15",
            "upload_time_iso_8601": "2024-11-06T16:01:15.496073Z",
            "url": "https://files.pythonhosted.org/packages/46/5f/ee1692303b7cc15cdaf56861de6da8e12d001f4c45883832ffd26827b777/pyFFTW-0.15.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e119b66be24aec24a1e59c8c7a04d58b446af15b809a53d70626acba7e865853",
                "md5": "d9b9da5d739452c459e36c3559aa1fde",
                "sha256": "9ff6b656058f4099db30a5b5d01c7c1c6503c02a68f07398008a094c374d53c5"
            },
            "downloads": -1,
            "filename": "pyFFTW-0.15.0-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d9b9da5d739452c459e36c3559aa1fde",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.10",
            "size": 2627837,
            "upload_time": "2024-11-06T16:01:16",
            "upload_time_iso_8601": "2024-11-06T16:01:16.917419Z",
            "url": "https://files.pythonhosted.org/packages/e1/19/b66be24aec24a1e59c8c7a04d58b446af15b809a53d70626acba7e865853/pyFFTW-0.15.0-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4b3fee1bc44b080fc1e81d293cd07bed563d254bc1997d63a3b8053804a87dfd",
                "md5": "7c56c69693afe21919df964f2d7a800a",
                "sha256": "2f16b9854a40c8fdd10aa5803b24ddc6ab49f9cd559dbd7f07e7d61aa205c1ca"
            },
            "downloads": -1,
            "filename": "pyfftw-0.15.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7c56c69693afe21919df964f2d7a800a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 164003,
            "upload_time": "2024-11-06T16:01:19",
            "upload_time_iso_8601": "2024-11-06T16:01:19.293122Z",
            "url": "https://files.pythonhosted.org/packages/4b/3f/ee1bc44b080fc1e81d293cd07bed563d254bc1997d63a3b8053804a87dfd/pyfftw-0.15.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-06 16:01:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pyFFTW",
    "github_project": "pyFFTW",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyfftw"
}
        
Elapsed time: 0.43649s