Coder Social home page Coder Social logo

pyfftw-feedstock's Introduction

About pyfftw

Home: http://hgomersall.github.com/pyFFTW/

Package license: BSD or GPL 2

Feedstock license: BSD-3-Clause

Summary: A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms.

Current build status

Travis linux
Azure
VariantStatus
linux_64_numpy1.20python3.8.____73_pypy variant
linux_64_numpy1.20python3.8.____cpython variant
linux_64_numpy1.20python3.9.____73_pypy variant
linux_64_numpy1.20python3.9.____cpython variant
linux_64_numpy1.21python3.10.____cpython variant
linux_64_numpy1.23python3.11.____cpython variant
linux_aarch64_numpy1.20python3.8.____73_pypy variant
linux_aarch64_numpy1.20python3.8.____cpython variant
linux_aarch64_numpy1.20python3.9.____73_pypy variant
linux_aarch64_numpy1.20python3.9.____cpython variant
linux_aarch64_numpy1.21python3.10.____cpython variant
linux_aarch64_numpy1.23python3.11.____cpython variant
linux_ppc64le_numpy1.20python3.8.____73_pypy variant
linux_ppc64le_numpy1.20python3.8.____cpython variant
linux_ppc64le_numpy1.20python3.9.____73_pypy variant
linux_ppc64le_numpy1.20python3.9.____cpython variant
linux_ppc64le_numpy1.21python3.10.____cpython variant
linux_ppc64le_numpy1.23python3.11.____cpython variant
osx_64_numpy1.20python3.8.____73_pypy variant
osx_64_numpy1.20python3.8.____cpython variant
osx_64_numpy1.20python3.9.____73_pypy variant
osx_64_numpy1.20python3.9.____cpython variant
osx_64_numpy1.21python3.10.____cpython variant
osx_64_numpy1.23python3.11.____cpython variant
osx_arm64_numpy1.20python3.9.____cpython variant
osx_arm64_numpy1.21python3.10.____cpython variant
osx_arm64_numpy1.23python3.11.____cpython variant
win_64_numpy1.20python3.8.____73_pypy variant
win_64_numpy1.20python3.8.____cpython variant
win_64_numpy1.20python3.9.____73_pypy variant
win_64_numpy1.20python3.9.____cpython variant
win_64_numpy1.21python3.10.____cpython variant
win_64_numpy1.23python3.11.____cpython variant

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Installing pyfftw

Installing pyfftw from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, pyfftw can be installed with conda:

conda install pyfftw

or with mamba:

mamba install pyfftw

It is possible to list all of the versions of pyfftw available on your platform with conda:

conda search pyfftw --channel conda-forge

or with mamba:

mamba search pyfftw --channel conda-forge

Alternatively, mamba repoquery may provide more information:

# Search all versions available on your platform:
mamba repoquery search pyfftw --channel conda-forge

# List packages depending on `pyfftw`:
mamba repoquery whoneeds pyfftw --channel conda-forge

# List dependencies of `pyfftw`:
mamba repoquery depends pyfftw --channel conda-forge

About conda-forge

Powered by NumFOCUS

conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a feedstock.

A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by Azure, GitHub, CircleCI, AppVeyor, Drone, and TravisCI it is possible to build and upload installable packages to the conda-forge Anaconda-Cloud channel for Linux, Windows and OSX respectively.

To manage the continuous integration and simplify feedstock maintenance conda-smithy has been developed. Using the conda-forge.yml within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with conda smithy rerender.

For more information please check the conda-forge documentation.

Terminology

feedstock - the conda recipe (raw material), supporting scripts and CI configuration.

conda-smithy - the tool which helps orchestrate the feedstock. Its primary use is in the construction of the CI .yml files and simplify the management of many feedstocks.

conda-forge - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions)

Updating pyfftw-feedstock

If you would like to improve the pyfftw recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the conda-forge channel, whereupon the built conda packages will be available for everybody to install and use from the conda-forge channel. Note that all branches in the conda-forge/pyfftw-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions.

In order to produce a uniquely identifiable distribution:

  • If the version of a package is not being increased, please add or increase the build/number.
  • If the version of a package is being increased, please remember to return the build/number back to 0.

Feedstock Maintainers

pyfftw-feedstock's People

Contributors

aasensio avatar beckermr avatar conda-forge-admin avatar conda-forge-curator[bot] avatar duncanmmacleod avatar github-actions[bot] avatar grlee77 avatar jakirkham avatar jjhelmus avatar mariusvniekerk avatar ocefpaf avatar regro-cf-autotick-bot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pyfftw-feedstock's Issues

broken Python 3.8 arm64 build

Issue:

The Python 3.8 build for arm64 was failing when updating to v0.13.0 in #47. I disabled it for now so we can have v0.13.0 on conda-forge, but we may want to investigate further and remove the skip statement that was added.

The error occurs somewhere in Python standard libs prior to the start of compilation, so it is not clear that the issue is related to pyFFTW itself. See CI output of the failed job below:

Setting up cross-python
Finished setting up cross-python
Fatal Python error: init_import_size: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/venv/lib/site.py", line 180, in <module>
    import site
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 914, in _find_spec
  File "<string>", line 18, in _PathFinder_find_spec
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/lib/python3.8/sysconfig.py", line 534, in get_path
    return get_paths(scheme, vars, expand)[name]
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/lib/python3.8/sysconfig.py", line 524, in get_paths
    return _expand_vars(scheme, vars)
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/lib/python3.8/sysconfig.py", line 177, in _expand_vars
    _extend_dict(vars, get_config_vars())
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/lib/python3.8/sysconfig.py", line 572, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/_build_env/lib/python3.8/sysconfig.py", line 439, in _init_posix
    name = _get_sysconfigdata_name(True)
TypeError: _get_sysconfigdata_name() takes 0 positional arguments but 1 was given
Traceback (most recent call last):
  File "/Users/runner/miniforge3/bin/conda-mambabuild", line 10, in <module>
    sys.exit(main())
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/boa/cli/mambabuild.py", line 215, in main
    call_conda_build(action, config)
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/boa/cli/mambabuild.py", line 187, in call_conda_build
    result = api.build(
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/conda_build/api.py", line 186, in build
    return build_tree(
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/conda_build/build.py", line 3083, in build_tree
    packages_from_this = build(metadata, stats,
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/conda_build/build.py", line 2206, in build
    utils.check_call_env(cmd, env=env, rewrite_stdout_env=rewrite_env,
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/conda_build/utils.py", line 410, in check_call_env
  File "/Users/runner/miniforge3/lib/python3.9/site-packages/conda_build/utils.py", line 390, in _func_defaulting_env_to_os_environ
    raise subprocess.CalledProcessError(proc.returncode, _args)
subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/Users/runner/miniforge3/conda-bld/pyfftw_1640654785474/work/conda_build.sh']' returned non-zero exit status 1.
##[error]Bash exited with code '1'.

Add osx-arm64 support

I believe all the deps have osx-arm64 builds, so it would be nice to have this building for it as well.

0.13.0 build 1 is broken on linux

Bug report at pyFFTW/pyFFTW#294 (comment)

I can recreate the issue locally. If I force install of build 0 which was not using the static linking, then it works okay for me.

Specifically the following version works, but build "1" does not
mamba install "pyfftw=0.13.0=py39h51d1ae8_0"

The PyPI packages also work as expected.

Run unittests during build

Tried to do this before, but ran into issues as it was unable to import some modules that were included with the tests. Seems only to happen during conda builds and was not unique to this package. Will need to investigate why this happens and come up with a fix.

Threading not supported on pyfftw 0.13.1

Solution to issue cannot be found in the documentation.

  • I checked the documentation.

Issue

I ran into an issue using pyfftw 0.13.1 from conda-forge when trying to use threads. This was previously (and is currently) working with pyfftw 0.12.

The error is:

>>> import numpy as np
>>> from pyfftw.interfaces.numpy_fft import rfftn
>>> arr = np.random.randn(86400)
>>> rfftn(arr, threads=2) 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/chambeca/miniconda3/envs/pyfftw-threaded/lib/python3.11/site-packages/pyfftw/interfaces/numpy_fft.py", line 286, in rfftn
    threads = _default_threads(threads)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chambeca/miniconda3/envs/pyfftw-threaded/lib/python3.11/site-packages/pyfftw/builders/_utils.py", line 114, in _default_threads
    raise ValueError("threads > 1 requested, but pyFFTW was not built "
ValueError: threads > 1 requested, but pyFFTW was not built with multithreaded FFTW.

I replicated this in a fresh environment created using:

conda create -n pyfftw-threaded -c conda-forge pyfftw

Creating a similar fresh environment with pyfftw==0.12 does not result in the error.

I'm running into this error across all operating systems and python 3.[8-11] in tests here associated with this PR

Installed packages

# packages in environment at /home/chambeca/miniconda3/envs/pyfftw-threaded:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
ca-certificates           2022.12.7            ha878542_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
libblas                   3.9.0           16_linux64_openblas    conda-forge
libcblas                  3.9.0           16_linux64_openblas    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 12.2.0              h65d4601_19    conda-forge
libgfortran-ng            12.2.0              h69a702a_19    conda-forge
libgfortran5              12.2.0              h337968e_19    conda-forge
libgomp                   12.2.0              h65d4601_19    conda-forge
liblapack                 3.9.0           16_linux64_openblas    conda-forge
libnsl                    2.0.0                h7f98852_0    conda-forge
libopenblas               0.3.21          pthreads_h78a6416_3    conda-forge
libsqlite                 3.40.0               h753d276_0    conda-forge
libstdcxx-ng              12.2.0              h46fd767_19    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libzlib                   1.2.13               h166bdaf_4    conda-forge
ncurses                   6.3                  h27087fc_1    conda-forge
numpy                     1.24.2          py311h8e6699e_0    conda-forge
openssl                   3.0.8                h0b41bf4_0    conda-forge
pip                       23.0.1             pyhd8ed1ab_0    conda-forge
pyfftw                    0.13.1          py311hcb2cf0a_0    conda-forge
python                    3.11.0          he550d4f_1_cpython    conda-forge
python_abi                3.11                    3_cp311    conda-forge
readline                  8.1.2                h0f457ee_0    conda-forge
setuptools                67.5.1             pyhd8ed1ab_0    conda-forge
tk                        8.6.12               h27826a3_0    conda-forge
tzdata                    2022g                h191b570_0    conda-forge
wheel                     0.38.4             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge

Environment info

active environment : pyfftw-threaded
    active env location : /home/chambeca/miniconda3/envs/pyfftw-threaded
            shell level : 3
       user config file : /home/chambeca/.condarc
 populated config files : /home/chambeca/.condarc
          conda version : 22.11.1
    conda-build version : 3.21.9
         python version : 3.9.15.final.0
       virtual packages : __archspec=1=x86_64
                          __cuda=12.0=0
                          __glibc=2.37=0
                          __linux=5.15.94=0
                          __unix=0=0
       base environment : /home/chambeca/miniconda3  (writable)
      conda av data dir : /home/chambeca/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/chambeca/miniconda3/pkgs
                          /home/chambeca/.conda/pkgs
       envs directories : /home/chambeca/miniconda3/envs
                          /home/chambeca/.conda/envs
               platform : linux-64
             user-agent : conda/22.11.1 requests/2.28.1 CPython/3.9.15 Linux/5.15.94-1-MANJARO manjaro/22.0.4 glibc/2.37
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

modify license listed in meta.yaml?

currently the license filed in meta.yaml says:

BSD or GPL2

The code in pyFFTW itself is BSD 3-clause licensed, but FFTW3 is GPL 2.0. To avoid possible misunderstanding, I think we should list the conda-forge package as just "GPL 2.0" (especially since we currently statically link FFTW). The license file that is linked does already mention the GPL 2.0 restriction, but users might potentially miss that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.