From 9e92da94ef533af5a1663346946a26eaf5e47eb0 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 10:35:33 +0100 Subject: [PATCH 01/36] remove cuda files --- .hgignore | 1 - src_cpp/2d/fft2d_with_cufft.cu | 267 --------------------------- src_cpp/3d/fft3d_with_cufft.cu | 319 --------------------------------- 3 files changed, 587 deletions(-) delete mode 100644 src_cpp/2d/fft2d_with_cufft.cu delete mode 100644 src_cpp/3d/fft3d_with_cufft.cu diff --git a/.hgignore b/.hgignore index bb8e082..67d8825 100644 --- a/.hgignore +++ b/.hgignore @@ -23,7 +23,6 @@ src_cy/fft*_pxd.pxd src/**/*.pyx src/**/*.pxd src/**/*.cpp -src/**/*.cu __pycache__ diff --git a/src_cpp/2d/fft2d_with_cufft.cu b/src_cpp/2d/fft2d_with_cufft.cu deleted file mode 100644 index d4ea87c..0000000 --- a/src_cpp/2d/fft2d_with_cufft.cu +++ /dev/null @@ -1,267 +0,0 @@ - - -#include -using namespace std; - -#include - -#include -#include - - - -// KERNEL CUDA -// Complex scale -static __device__ __host__ inline dcomplex ComplexScale(dcomplex a, myreal s) -{ - dcomplex c; - c.x = s * a.x; - c.y = s * a.y; - return c; -} - -__global__ void vectorNorm(const myreal norm, dcomplex *A, int numElements) -{ - int i = blockDim.x * blockIdx.x + threadIdx.x; - - if (i < numElements) - { - A[i] = ComplexScale(A[i], norm); - } -} - -////////////////// FIN KERNEL CUDA - -FFT2DWithCUFFT::FFT2DWithCUFFT(int argN0, int argN1): - BaseFFT2D::BaseFFT2D(argN0, argN1) -{ - struct timeval start_time, end_time; - myreal total_usecs; - - this->_init(); - - /* y corresponds to dim 0 in physical space */ - /* x corresponds to dim 1 in physical space */ - ny = N0; - nx = N1; - - nX0 = N0; - nX0loc = nX0; - nX1 = N1; - nX1loc = nX1; - - - nKx = nx/2+1; - nKxloc = nKx; - nKy = ny; - - /* This 2D fft is NOT transposed */ - nK0 = nKy; - nK0loc = nK0; - nK1 = nKx; - nK1loc = nK1; - - - mem_sizer = sizeof(myreal) * N0 * N1 ;//taille de arrayX - int new_size = nK0 * nK1 ; - mem_size = 2 * sizeof(myreal) * new_size ;//taille de arrayK - - gettimeofday(&start_time, NULL); - // Allocate device memory for signal - checkCudaErrors(cudaMalloc((void **)&data, mem_size)); - checkCudaErrors(cudaMalloc((void **)&datar, mem_sizer)); - - // CUFFT plan -#ifdef SINGLE_PREC - checkCudaErrors(cufftPlan2d(&plan, nX0, nX1, CUFFT_R2C)); - checkCudaErrors(cufftPlan2d(&plan1, nX0, nX1, CUFFT_C2R)); -#else - checkCudaErrors(cufftPlan2d(&plan, nX0, nX1, CUFFT_D2Z)); - checkCudaErrors(cufftPlan2d(&plan1, nX0, nX1, CUFFT_Z2D)); -#endif - - gettimeofday(&end_time, NULL); - - total_usecs = (end_time.tv_sec-start_time.tv_sec) + - (end_time.tv_usec-start_time.tv_usec)/1000000.; - - if (rank == 0) - printf("Initialization (%s) done in %f s\n", - this->get_classname(), total_usecs); -} - - -void FFT2DWithCUFFT::destroy(void) -{ - // cout << "Object is being destroyed" << endl; -cudaFree(data); -cudaFree(datar); -cufftDestroy(plan); -cufftDestroy(plan1); -} - - -FFT2DWithCUFFT::~FFT2DWithCUFFT(void) -{ -} - - -char const* FFT2DWithCUFFT::get_classname() -{ return "FFT2DWithCUFFT";} - - -myreal FFT2DWithCUFFT::compute_energy_from_X(myreal* fieldX) -{ - int ii,jj; - myreal energy = 0.; - myreal energy1; - - for (ii=0; ii>>(norm, data, nK0 * nK1 ); - - // Copy host device to memory - checkCudaErrors(cudaMemcpy(fieldK, data, mem_size, cudaMemcpyDeviceToHost)); -} - - -void FFT2DWithCUFFT::ifft(mycomplex *fieldK, myreal *fieldX) -{ - //cout << "FFT2DWithCUFFT::ifft" << endl; - // Copy host memory to device - checkCudaErrors(cudaMemcpy(data, fieldK, mem_size, cudaMemcpyHostToDevice)); - - // FFT on DEVICE -#ifdef SINGLE_PREC - checkCudaErrors(cufftExecC2R(plan1, (cufftComplex *)data, (cufftReal *)datar)); -#else - checkCudaErrors(cufftExecZ2D(plan1, (cufftDoubleComplex *)data, (cufftDoubleReal *)datar)); -#endif - - // Copy host device to memory - checkCudaErrors(cudaMemcpy(fieldX, datar, mem_sizer, cudaMemcpyDeviceToHost)); -} - diff --git a/src_cpp/3d/fft3d_with_cufft.cu b/src_cpp/3d/fft3d_with_cufft.cu deleted file mode 100644 index 8612997..0000000 --- a/src_cpp/3d/fft3d_with_cufft.cu +++ /dev/null @@ -1,319 +0,0 @@ - - -#include -using namespace std; - -#include - -#include -#include - - -// KERNEL CUDA -// Complex scale -static __device__ __host__ inline dcomplex ComplexScale(dcomplex a, myreal s) -{ - dcomplex c; - c.x = s * a.x; - c.y = s * a.y; - return c; -} - -__global__ void vectorNorm(const myreal norm, dcomplex *A, int numElements) -{ - int i = blockDim.x * blockIdx.x + threadIdx.x; - - if (i < numElements) - { - A[i] = ComplexScale(A[i], norm); - } -} - -////////////////// FIN KERNEL CUDA - -FFT3DWithCUFFT::FFT3DWithCUFFT(int argN0, int argN1, int argN2): - BaseFFT3D::BaseFFT3D(argN0, argN1, argN2) -{ - struct timeval start_time, end_time; - myreal total_usecs; - - this->_init(); - - /* y corresponds to dim 0 in physical space */ - /* y corresponds to dim 1 in physical space */ - /* x corresponds to dim 2 in physical space */ - nz = N0; - ny = N1; - nx = N2; - - nX0 = N0; - nX0loc = nX0; - nX1 = N1; - nX1loc = nX1; - nX2 = N2; - nX2loc = N2; - - nKx = nx/2+1; - nKy = ny; - nKz = nz; - - /* This 3D fft is NOT transposed */ - nK0 = nKz; - nK0loc = nK0; - nK1 = nKy; - nK1loc = nK1; - nK2 = nKx; - nK2loc = nK2; - - mem_sizer = sizeof(myreal) * N0 * N1 * N2 ;//taille de arrayX - int new_size = nK0 * nK1 * nK2 ; - mem_size = 2 * sizeof(myreal) * new_size ;//taille de arrayK - - gettimeofday(&start_time, NULL); - // Allocate device memory for signal - checkCudaErrors(cudaMalloc((void **)&data, mem_size)); - checkCudaErrors(cudaMalloc((void **)&datar, mem_sizer)); - - // CUFFT plan -#ifdef SINGLE_PREC - checkCudaErrors(cufftPlan3d(&plan, nX0, nX1, nX2, CUFFT_R2C)); - checkCudaErrors(cufftPlan3d(&plan1, nX0, nX1, nX2, CUFFT_C2R)); -#else - checkCudaErrors(cufftPlan3d(&plan, nX0, nX1, nX2, CUFFT_D2Z)); - checkCudaErrors(cufftPlan3d(&plan1, nX0, nX1, nX2, CUFFT_Z2D)); -#endif - - gettimeofday(&end_time, NULL); - - total_usecs = (end_time.tv_sec-start_time.tv_sec) + - (end_time.tv_usec-start_time.tv_usec)/1000000.; - - if (rank == 0) - printf("Initialization (%s) done in %f s\n", - this->get_classname(), total_usecs); -} - - -void FFT3DWithCUFFT::destroy(void) -{ - // cout << "Object is being destroyed" << endl; -cudaFree(data); -cudaFree(datar); -cufftDestroy(plan); -cufftDestroy(plan1); -} - - -FFT3DWithCUFFT::~FFT3DWithCUFFT(void) -{ -} - - -char const* FFT3DWithCUFFT::get_classname() -{ return "FFT3DWithCUFFT";} - - -myreal FFT3DWithCUFFT::compute_energy_from_X(myreal* fieldX) -{ - int ii,jj,kk; - myreal energy = 0.; - myreal energy1, energy2; - - for (ii=0; ii>>(norm, data, nK0 * nK1 * nK2 ); - - - // Copy host device to memory - checkCudaErrors(cudaMemcpy(fieldK, data, mem_size, cudaMemcpyDeviceToHost)); - - -} - - -void FFT3DWithCUFFT::ifft(mycomplex *fieldK, myreal *fieldX) -{ - //cout << "FFT3DWithCUFFT::ifft" << endl; - // Copy host memory to device - checkCudaErrors(cudaMemcpy(data, fieldK, mem_size, cudaMemcpyHostToDevice)); - - // FFT on DEVICE -#ifdef SINGLE_PREC - checkCudaErrors(cufftExecC2R(plan1, (cufftComplex *)data, (cufftReal *)datar)); -#else - checkCudaErrors(cufftExecZ2D(plan1, (cufftDoubleComplex *)data, (cufftDoubleReal *)datar)); -#endif - - // Copy host device to memory - checkCudaErrors(cudaMemcpy(fieldX, datar, mem_sizer, cudaMemcpyDeviceToHost)); -} - -void FFT3DWithCUFFT::ifft_destroy(mycomplex *fieldK, myreal *fieldX) -{ - //cout << "FFT3DWithCUFFT::ifft" << endl; - // Copy host memory to device - checkCudaErrors(cudaMemcpy(data, fieldK, mem_size, cudaMemcpyHostToDevice)); - - // FFT on DEVICE -#ifdef SINGLE_PREC - checkCudaErrors(cufftExecC2R(plan1, (cufftComplex *)data, (cufftReal *)datar)); -#else - checkCudaErrors(cufftExecZ2D(plan1, (cufftDoubleComplex *)data, (cufftDoubleReal *)datar)); -#endif - - // Copy host device to memory - checkCudaErrors(cudaMemcpy(fieldX, datar, mem_sizer, cudaMemcpyDeviceToHost)); -} - - From d520ee96160eb04c221aa5846a4e0aedf1189f1c Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 10:37:31 +0100 Subject: [PATCH 02/36] move all setup* and site.cfg.* files in a directory old --- setup.py => old/setup.py | 0 setup_build.py => old/setup_build.py | 0 setup_configure.py => old/setup_configure.py | 0 setup_make.py => old/setup_make.py | 0 site.cfg.default => old/site.cfg.default | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.appveyor_win | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.beskow_fftw3 | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.docker_mpi | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.docker_seq | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.legi | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.mkl | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.occigen_fftw3 | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.occigen_mkl | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.tetralith | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.travis_linux | 0 .../site.cfg.files}/site.cfg.travis_linux_pypy3 | 0 {site.cfg.files => old/site.cfg.files}/site.cfg.travis_osx | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename setup.py => old/setup.py (100%) rename setup_build.py => old/setup_build.py (100%) rename setup_configure.py => old/setup_configure.py (100%) rename setup_make.py => old/setup_make.py (100%) rename site.cfg.default => old/site.cfg.default (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.appveyor_win (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.beskow_fftw3 (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.docker_mpi (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.docker_seq (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.legi (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.mkl (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.occigen_fftw3 (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.occigen_mkl (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.tetralith (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.travis_linux (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.travis_linux_pypy3 (100%) rename {site.cfg.files => old/site.cfg.files}/site.cfg.travis_osx (100%) diff --git a/setup.py b/old/setup.py similarity index 100% rename from setup.py rename to old/setup.py diff --git a/setup_build.py b/old/setup_build.py similarity index 100% rename from setup_build.py rename to old/setup_build.py diff --git a/setup_configure.py b/old/setup_configure.py similarity index 100% rename from setup_configure.py rename to old/setup_configure.py diff --git a/setup_make.py b/old/setup_make.py similarity index 100% rename from setup_make.py rename to old/setup_make.py diff --git a/site.cfg.default b/old/site.cfg.default similarity index 100% rename from site.cfg.default rename to old/site.cfg.default diff --git a/site.cfg.files/site.cfg.appveyor_win b/old/site.cfg.files/site.cfg.appveyor_win similarity index 100% rename from site.cfg.files/site.cfg.appveyor_win rename to old/site.cfg.files/site.cfg.appveyor_win diff --git a/site.cfg.files/site.cfg.beskow_fftw3 b/old/site.cfg.files/site.cfg.beskow_fftw3 similarity index 100% rename from site.cfg.files/site.cfg.beskow_fftw3 rename to old/site.cfg.files/site.cfg.beskow_fftw3 diff --git a/site.cfg.files/site.cfg.docker_mpi b/old/site.cfg.files/site.cfg.docker_mpi similarity index 100% rename from site.cfg.files/site.cfg.docker_mpi rename to old/site.cfg.files/site.cfg.docker_mpi diff --git a/site.cfg.files/site.cfg.docker_seq b/old/site.cfg.files/site.cfg.docker_seq similarity index 100% rename from site.cfg.files/site.cfg.docker_seq rename to old/site.cfg.files/site.cfg.docker_seq diff --git a/site.cfg.files/site.cfg.legi b/old/site.cfg.files/site.cfg.legi similarity index 100% rename from site.cfg.files/site.cfg.legi rename to old/site.cfg.files/site.cfg.legi diff --git a/site.cfg.files/site.cfg.mkl b/old/site.cfg.files/site.cfg.mkl similarity index 100% rename from site.cfg.files/site.cfg.mkl rename to old/site.cfg.files/site.cfg.mkl diff --git a/site.cfg.files/site.cfg.occigen_fftw3 b/old/site.cfg.files/site.cfg.occigen_fftw3 similarity index 100% rename from site.cfg.files/site.cfg.occigen_fftw3 rename to old/site.cfg.files/site.cfg.occigen_fftw3 diff --git a/site.cfg.files/site.cfg.occigen_mkl b/old/site.cfg.files/site.cfg.occigen_mkl similarity index 100% rename from site.cfg.files/site.cfg.occigen_mkl rename to old/site.cfg.files/site.cfg.occigen_mkl diff --git a/site.cfg.files/site.cfg.tetralith b/old/site.cfg.files/site.cfg.tetralith similarity index 100% rename from site.cfg.files/site.cfg.tetralith rename to old/site.cfg.files/site.cfg.tetralith diff --git a/site.cfg.files/site.cfg.travis_linux b/old/site.cfg.files/site.cfg.travis_linux similarity index 100% rename from site.cfg.files/site.cfg.travis_linux rename to old/site.cfg.files/site.cfg.travis_linux diff --git a/site.cfg.files/site.cfg.travis_linux_pypy3 b/old/site.cfg.files/site.cfg.travis_linux_pypy3 similarity index 100% rename from site.cfg.files/site.cfg.travis_linux_pypy3 rename to old/site.cfg.files/site.cfg.travis_linux_pypy3 diff --git a/site.cfg.files/site.cfg.travis_osx b/old/site.cfg.files/site.cfg.travis_osx similarity index 100% rename from site.cfg.files/site.cfg.travis_osx rename to old/site.cfg.files/site.cfg.travis_osx From b538d1e370a0f9e44f632a2f442a7a555bbbb268 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 11:38:50 +0100 Subject: [PATCH 03/36] Use Meson for the build of fluidfft only for the transonic part --- .hgignore | 2 + meson.build | 97 ++++++++++++++++++++++++++++++++++ meson.options | 27 ++++++++++ pyproject.toml | 11 +++- src/fluidfft/fft2d/meson.build | 17 ++++++ src/fluidfft/fft3d/meson.build | 17 ++++++ src/fluidfft/meson.build | 25 +++++++++ 7 files changed, 194 insertions(+), 2 deletions(-) create mode 100644 meson.build create mode 100644 meson.options create mode 100644 src/fluidfft/fft2d/meson.build create mode 100644 src/fluidfft/fft3d/meson.build create mode 100644 src/fluidfft/meson.build diff --git a/.hgignore b/.hgignore index 67d8825..2d361ee 100644 --- a/.hgignore +++ b/.hgignore @@ -78,3 +78,5 @@ doc/tmp/* .vscode .pdm-python + +src/fluidfft/build_conf.txt \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..fd4da49 --- /dev/null +++ b/meson.build @@ -0,0 +1,97 @@ +project( + 'fluidfft', + 'cpp', + license: 'CeCILL', + meson_version: '>= 1.1.0', + default_options: [ + 'buildtype=release', + 'c_std=c99', + 'cpp_std=c++14', + ], +) + +# https://mesonbuild.com/Python-module.html +py_mod = import('python') +py = py_mod.find_installation('python3', pure: false) +py_dep = py.dependency() + +backend = get_option('transonic-backend') + +if backend.contains(',') + backends = backend.split(',') +else + backends = [backend] +endif + +use_pythran = backend.contains('pythran') +if use_pythran + incdir_numpy = run_command( + py, + [ + '-c', + '''import os +import numpy as np +try: + incdir = os.path.relpath(np.get_include()) +except Exception: + incdir = np.get_include() +print(incdir)''' + ], + check: true + ).stdout().strip() + + inc_np = include_directories(incdir_numpy) + np_dep = declare_dependency(include_directories: inc_np) + + incdir_pythran = run_command( + py, + [ + '-c', + '''import os +import pythran; +incdir = os.path.dirname(pythran.__file__) +try: + incdir = os.path.relpath(incdir) +except Exception: + pass +print(incdir)''' + ], + check: true + ).stdout().strip() + + pythran = find_program('pythran', native: true) + + cpp_args_pythran = [ + '-DENABLE_PYTHON_MODULE', + '-D__PYTHRAN__=3', + '-DPYTHRAN_BLAS_NONE' + ] + + if get_option('use-xsimd') == true + # xsimd is unvendored from pythran by conda-forge, and due to a compiler + # activation bug the default /include/ may not be visible (see + # gh-15698). Hence look for xsimd explicitly. + xsimd_dep = dependency('xsimd', required: false) + pythran_dep = declare_dependency( + include_directories: incdir_pythran, + dependencies: xsimd_dep, + ) + cpp_args_pythran += ['-DUSE_XSIMD'] + else + pythran_dep = declare_dependency( + include_directories: incdir_pythran, + ) + endif + + pythran_complex_hook = get_option('pythran-complex-hook') + if pythran_complex_hook == 'os-dependent' + pythran_complex_hook = host_machine.system() == 'linux' + endif + + if get_option('native') + cpp_args_pythran += ['-march=native', '-Ofast'] + endif + +endif + +subdir('src/fluidfft') diff --git a/meson.options b/meson.options new file mode 100644 index 0000000..a543b9f --- /dev/null +++ b/meson.options @@ -0,0 +1,27 @@ +option( + 'transonic-backend', + type: 'string', + value: 'pythran,python,numba', + description: + 'pythran,python,numba (default), cython, numpy, numba; ' + + 'or comma separated value representing multi-backends', +) +option( + 'native', + type: 'boolean', + value: false, + description: 'Performance oriented and not portable build', +) +option( + 'use-xsimd', + type: 'boolean', + value: true, + description: 'Turns on xsimd vectorization', +) +option( + 'pythran-complex-hook', + type: 'combo', + choices: ['os-dependent', 'true', 'false'], + value: 'os-dependent', + description: 'Pythran complex_hook option', +) diff --git a/pyproject.toml b/pyproject.toml index aebf0ba..f9bb04c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,14 @@ [build-system] -requires = ["setuptools", "transonic", "pythran", "jinja2", "cython"] -build-backend = "setuptools.build_meta" +requires = [ + "meson-python", + "numpy", + "transonic>=0.6.0", + "pythran>=0.9.7", + "jinja2", + "cython", + ] +build-backend = 'mesonpy' [project] name = "fluidfft" diff --git a/src/fluidfft/fft2d/meson.build b/src/fluidfft/fft2d/meson.build new file mode 100644 index 0000000..75acc0a --- /dev/null +++ b/src/fluidfft/fft2d/meson.build @@ -0,0 +1,17 @@ +python_sources = [ + '__init__.py', + 'operators.py', + 'with_dask.py', + 'testing.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft/fft2d' +) + +run_command(['transonic', '--meson', '--backend', backend, 'operators.py'], check: true) + +foreach be : backends + subdir('__' + be + '__') +endforeach diff --git a/src/fluidfft/fft3d/meson.build b/src/fluidfft/fft3d/meson.build new file mode 100644 index 0000000..43642e5 --- /dev/null +++ b/src/fluidfft/fft3d/meson.build @@ -0,0 +1,17 @@ +python_sources = [ + '__init__.py', + 'base.py', + 'operators.py', + 'testing.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft/fft3d' +) + +run_command(['transonic', '--meson', '--backend', backend, 'operators.py'], check: true) + +foreach be : backends + subdir('__' + be + '__') +endforeach diff --git a/src/fluidfft/meson.build b/src/fluidfft/meson.build new file mode 100644 index 0000000..fe86a63 --- /dev/null +++ b/src/fluidfft/meson.build @@ -0,0 +1,25 @@ +python_sources = [ + '__init__.py', + '_version.py', + 'base.py', + 'bench.py', + 'bench_analysis.py', + 'util.py', + 'build_conf.txt', +] + +run_command( + 'sh', + '-c', + 'echo transonic_backend=' + backend + ' > ' + 'build_conf.txt', + check: true, +) + + +py.install_sources( + python_sources, + subdir: 'fluidfft' +) + +subdir('fft2d') +subdir('fft3d') From 6a214259e91170a9c1abd6a4ecfcc8c41082370f Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 11:40:48 +0100 Subject: [PATCH 04/36] Move src_cy and src_cpp in a new pure Python package in plugins/fluidfft-build-deps --- MANIFEST.in | 5 ----- Makefile | 2 +- .../fluidfft_build_deps}/__init__.py | 0 .../fluidfft_build_deps/src_cpp}/2d/Makefile | 0 .../fluidfft_build_deps/src_cpp}/2d/README.rst | 0 .../fluidfft_build_deps/src_cpp}/2d/TODOLIST.rst | 0 .../src_cpp}/2d/base_fft2d.cpp | 0 .../fluidfft_build_deps/src_cpp}/2d/base_fft2d.h | 0 .../src_cpp}/2d/base_fft2dmpi.cpp | 0 .../src_cpp}/2d/base_fft2dmpi.h | 0 .../src_cpp}/2d/fft2d_with_cufft.h | 0 .../src_cpp}/2d/fft2d_with_fftw1d.cpp | 0 .../src_cpp}/2d/fft2d_with_fftw1d.h | 0 .../src_cpp}/2d/fft2d_with_fftw2d.cpp | 0 .../src_cpp}/2d/fft2d_with_fftw2d.h | 0 .../src_cpp}/2d/fft2dmpi_with_fftw1d.cpp | 0 .../src_cpp}/2d/fft2dmpi_with_fftw1d.h | 0 .../src_cpp}/2d/fft2dmpi_with_fftwmpi2d.cpp | 0 .../src_cpp}/2d/fft2dmpi_with_fftwmpi2d.h | 0 .../src_cpp}/2d/plot_results.py | 0 .../fluidfft_build_deps/src_cpp}/2d/run_benchs.py | 0 .../src_cpp}/2d/test_bench.cpp | 0 .../fluidfft_build_deps/src_cpp}/3d/Makefile | 0 .../src_cpp}/3d/Makefile.beskow | 0 .../fluidfft_build_deps/src_cpp}/3d/README.rst | 0 .../src_cpp}/3d/base_fft3d.cpp | 0 .../fluidfft_build_deps/src_cpp}/3d/base_fft3d.h | 0 .../src_cpp}/3d/base_fft3dmpi.cpp | 0 .../src_cpp}/3d/base_fft3dmpi.h | 0 .../src_cpp}/3d/fft3d_with_cufft.h | 0 .../src_cpp}/3d/fft3d_with_fftw3d.cpp | 0 .../src_cpp}/3d/fft3d_with_fftw3d.h | 0 .../src_cpp}/3d/fft3dmpi_with_fftw1d.cpp | 0 .../src_cpp}/3d/fft3dmpi_with_fftw1d.h | 0 .../src_cpp}/3d/fft3dmpi_with_fftwmpi3d.cpp | 0 .../src_cpp}/3d/fft3dmpi_with_fftwmpi3d.h | 0 .../src_cpp}/3d/fft3dmpi_with_p3dfft.cpp | 0 .../src_cpp}/3d/fft3dmpi_with_p3dfft.h | 0 .../src_cpp}/3d/fft3dmpi_with_pfft.cpp | 0 .../src_cpp}/3d/fft3dmpi_with_pfft.h | 0 .../fluidfft_build_deps/src_cpp}/3d/launch.oar | 0 .../src_cpp}/3d/test_bench.cpp | 0 .../src_cpp}/base/base_fft.cpp | 0 .../fluidfft_build_deps/src_cpp}/base/base_fft.h | 0 .../src_cpp}/base/base_fftmpi.cpp | 0 .../src_cpp}/base/base_fftmpi.h | 0 .../fluidfft_build_deps/src_cpp}/base/mainpage.h | 0 .../fluidfft_build_deps/src_cy}/Makefile | 0 .../fluidfft_build_deps/src_cy/__init__.py | 0 .../fluidfft_build_deps/src_cy}/base.pyx | 0 .../fluidfft_build_deps/src_cy}/cpu.pxd | 0 .../src_cy}/create_fake_mod_for_doc.py | 0 .../src_cy}/make_files_with_mako.py | 0 .../src_cy}/template2d_mako.pxd | 0 .../src_cy}/template2d_mako.pyx | 0 .../src_cy}/template3d_mako.pxd | 0 .../src_cy}/template3d_mako.pyx | 0 .../fluidfft_build_deps/src_cy}/tmp_2dto3d.py | 0 .../fluidfft_build_deps/src_cy}/util_pyfftw.pyx | 0 plugins/fluidfft-build-deps/pyproject.toml | 15 +++++++++++++++ pyproject.toml | 4 ++-- 61 files changed, 18 insertions(+), 8 deletions(-) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps}/__init__.py (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/Makefile (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/README.rst (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/TODOLIST.rst (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/base_fft2d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/base_fft2d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/base_fft2dmpi.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/base_fft2dmpi.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2d_with_cufft.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2d_with_fftw1d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2d_with_fftw1d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2d_with_fftw2d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2d_with_fftw2d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2dmpi_with_fftw1d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2dmpi_with_fftw1d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2dmpi_with_fftwmpi2d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/fft2dmpi_with_fftwmpi2d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/plot_results.py (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/run_benchs.py (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/2d/test_bench.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/Makefile (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/Makefile.beskow (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/README.rst (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/base_fft3d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/base_fft3d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/base_fft3dmpi.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/base_fft3dmpi.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3d_with_cufft.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3d_with_fftw3d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3d_with_fftw3d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_fftw1d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_fftw1d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_fftwmpi3d.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_fftwmpi3d.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_p3dfft.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_p3dfft.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_pfft.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/fft3dmpi_with_pfft.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/launch.oar (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/3d/test_bench.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/base/base_fft.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/base/base_fft.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/base/base_fftmpi.cpp (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/base/base_fftmpi.h (100%) rename {src_cpp => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp}/base/mainpage.h (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/Makefile (100%) create mode 100644 plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/__init__.py rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/base.pyx (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/cpu.pxd (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/create_fake_mod_for_doc.py (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/make_files_with_mako.py (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/template2d_mako.pxd (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/template2d_mako.pyx (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/template3d_mako.pxd (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/template3d_mako.pyx (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/tmp_2dto3d.py (100%) rename {src_cy => plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy}/util_pyfftw.pyx (100%) create mode 100644 plugins/fluidfft-build-deps/pyproject.toml diff --git a/MANIFEST.in b/MANIFEST.in index edb4b73..f43e833 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,9 +2,4 @@ include *.py include *.txt include *.rst recursive-include doc *.rst -recursive-include src_cy *.pyx -recursive-include src_cy *.pxd -recursive-include src_cy *.py -recursive-include src_cpp *.h -recursive-include src_cpp *.cpp recursive-include include *.h diff --git a/Makefile b/Makefile index 6ce92b1..5c5596f 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ cleancython: find src -name "*_cy.cpp" -delete cleanmako: - python -c "from src_cy.make_files_with_mako import clean_files as c; c()" + python -c "from fluidfft_build_deps.src_cy.make_files_with_mako import clean_files as c; c()" cleanall: clean cleanso cleanmako cleancython cleanpythran diff --git a/src_cy/__init__.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/__init__.py similarity index 100% rename from src_cy/__init__.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/__init__.py diff --git a/src_cpp/2d/Makefile b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/Makefile similarity index 100% rename from src_cpp/2d/Makefile rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/Makefile diff --git a/src_cpp/2d/README.rst b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/README.rst similarity index 100% rename from src_cpp/2d/README.rst rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/README.rst diff --git a/src_cpp/2d/TODOLIST.rst b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/TODOLIST.rst similarity index 100% rename from src_cpp/2d/TODOLIST.rst rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/TODOLIST.rst diff --git a/src_cpp/2d/base_fft2d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.cpp similarity index 100% rename from src_cpp/2d/base_fft2d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.cpp diff --git a/src_cpp/2d/base_fft2d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.h similarity index 100% rename from src_cpp/2d/base_fft2d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.h diff --git a/src_cpp/2d/base_fft2dmpi.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.cpp similarity index 100% rename from src_cpp/2d/base_fft2dmpi.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.cpp diff --git a/src_cpp/2d/base_fft2dmpi.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.h similarity index 100% rename from src_cpp/2d/base_fft2dmpi.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.h diff --git a/src_cpp/2d/fft2d_with_cufft.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_cufft.h similarity index 100% rename from src_cpp/2d/fft2d_with_cufft.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_cufft.h diff --git a/src_cpp/2d/fft2d_with_fftw1d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.cpp similarity index 100% rename from src_cpp/2d/fft2d_with_fftw1d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.cpp diff --git a/src_cpp/2d/fft2d_with_fftw1d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.h similarity index 100% rename from src_cpp/2d/fft2d_with_fftw1d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.h diff --git a/src_cpp/2d/fft2d_with_fftw2d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.cpp similarity index 100% rename from src_cpp/2d/fft2d_with_fftw2d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.cpp diff --git a/src_cpp/2d/fft2d_with_fftw2d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.h similarity index 100% rename from src_cpp/2d/fft2d_with_fftw2d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.h diff --git a/src_cpp/2d/fft2dmpi_with_fftw1d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.cpp similarity index 100% rename from src_cpp/2d/fft2dmpi_with_fftw1d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.cpp diff --git a/src_cpp/2d/fft2dmpi_with_fftw1d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.h similarity index 100% rename from src_cpp/2d/fft2dmpi_with_fftw1d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.h diff --git a/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp similarity index 100% rename from src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp diff --git a/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h similarity index 100% rename from src_cpp/2d/fft2dmpi_with_fftwmpi2d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h diff --git a/src_cpp/2d/plot_results.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py similarity index 100% rename from src_cpp/2d/plot_results.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py diff --git a/src_cpp/2d/run_benchs.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py similarity index 100% rename from src_cpp/2d/run_benchs.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py diff --git a/src_cpp/2d/test_bench.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/test_bench.cpp similarity index 100% rename from src_cpp/2d/test_bench.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/test_bench.cpp diff --git a/src_cpp/3d/Makefile b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile similarity index 100% rename from src_cpp/3d/Makefile rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile diff --git a/src_cpp/3d/Makefile.beskow b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile.beskow similarity index 100% rename from src_cpp/3d/Makefile.beskow rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile.beskow diff --git a/src_cpp/3d/README.rst b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/README.rst similarity index 100% rename from src_cpp/3d/README.rst rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/README.rst diff --git a/src_cpp/3d/base_fft3d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.cpp similarity index 100% rename from src_cpp/3d/base_fft3d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.cpp diff --git a/src_cpp/3d/base_fft3d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.h similarity index 100% rename from src_cpp/3d/base_fft3d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.h diff --git a/src_cpp/3d/base_fft3dmpi.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.cpp similarity index 100% rename from src_cpp/3d/base_fft3dmpi.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.cpp diff --git a/src_cpp/3d/base_fft3dmpi.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.h similarity index 100% rename from src_cpp/3d/base_fft3dmpi.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.h diff --git a/src_cpp/3d/fft3d_with_cufft.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_cufft.h similarity index 100% rename from src_cpp/3d/fft3d_with_cufft.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_cufft.h diff --git a/src_cpp/3d/fft3d_with_fftw3d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.cpp similarity index 100% rename from src_cpp/3d/fft3d_with_fftw3d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.cpp diff --git a/src_cpp/3d/fft3d_with_fftw3d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.h similarity index 100% rename from src_cpp/3d/fft3d_with_fftw3d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.h diff --git a/src_cpp/3d/fft3dmpi_with_fftw1d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.cpp similarity index 100% rename from src_cpp/3d/fft3dmpi_with_fftw1d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.cpp diff --git a/src_cpp/3d/fft3dmpi_with_fftw1d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.h similarity index 100% rename from src_cpp/3d/fft3dmpi_with_fftw1d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.h diff --git a/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp similarity index 100% rename from src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp diff --git a/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h similarity index 100% rename from src_cpp/3d/fft3dmpi_with_fftwmpi3d.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h diff --git a/src_cpp/3d/fft3dmpi_with_p3dfft.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.cpp similarity index 100% rename from src_cpp/3d/fft3dmpi_with_p3dfft.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.cpp diff --git a/src_cpp/3d/fft3dmpi_with_p3dfft.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.h similarity index 100% rename from src_cpp/3d/fft3dmpi_with_p3dfft.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.h diff --git a/src_cpp/3d/fft3dmpi_with_pfft.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.cpp similarity index 100% rename from src_cpp/3d/fft3dmpi_with_pfft.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.cpp diff --git a/src_cpp/3d/fft3dmpi_with_pfft.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.h similarity index 100% rename from src_cpp/3d/fft3dmpi_with_pfft.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.h diff --git a/src_cpp/3d/launch.oar b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/launch.oar similarity index 100% rename from src_cpp/3d/launch.oar rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/launch.oar diff --git a/src_cpp/3d/test_bench.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/test_bench.cpp similarity index 100% rename from src_cpp/3d/test_bench.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/test_bench.cpp diff --git a/src_cpp/base/base_fft.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.cpp similarity index 100% rename from src_cpp/base/base_fft.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.cpp diff --git a/src_cpp/base/base_fft.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.h similarity index 100% rename from src_cpp/base/base_fft.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.h diff --git a/src_cpp/base/base_fftmpi.cpp b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.cpp similarity index 100% rename from src_cpp/base/base_fftmpi.cpp rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.cpp diff --git a/src_cpp/base/base_fftmpi.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.h similarity index 100% rename from src_cpp/base/base_fftmpi.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.h diff --git a/src_cpp/base/mainpage.h b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/mainpage.h similarity index 100% rename from src_cpp/base/mainpage.h rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/mainpage.h diff --git a/src_cy/Makefile b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/Makefile similarity index 100% rename from src_cy/Makefile rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/Makefile diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/__init__.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src_cy/base.pyx b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/base.pyx similarity index 100% rename from src_cy/base.pyx rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/base.pyx diff --git a/src_cy/cpu.pxd b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/cpu.pxd similarity index 100% rename from src_cy/cpu.pxd rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/cpu.pxd diff --git a/src_cy/create_fake_mod_for_doc.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py similarity index 100% rename from src_cy/create_fake_mod_for_doc.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py diff --git a/src_cy/make_files_with_mako.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py similarity index 100% rename from src_cy/make_files_with_mako.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py diff --git a/src_cy/template2d_mako.pxd b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pxd similarity index 100% rename from src_cy/template2d_mako.pxd rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pxd diff --git a/src_cy/template2d_mako.pyx b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pyx similarity index 100% rename from src_cy/template2d_mako.pyx rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pyx diff --git a/src_cy/template3d_mako.pxd b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pxd similarity index 100% rename from src_cy/template3d_mako.pxd rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pxd diff --git a/src_cy/template3d_mako.pyx b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pyx similarity index 100% rename from src_cy/template3d_mako.pyx rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pyx diff --git a/src_cy/tmp_2dto3d.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/tmp_2dto3d.py similarity index 100% rename from src_cy/tmp_2dto3d.py rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/tmp_2dto3d.py diff --git a/src_cy/util_pyfftw.pyx b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/util_pyfftw.pyx similarity index 100% rename from src_cy/util_pyfftw.pyx rename to plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/util_pyfftw.pyx diff --git a/plugins/fluidfft-build-deps/pyproject.toml b/plugins/fluidfft-build-deps/pyproject.toml new file mode 100644 index 0000000..76446a5 --- /dev/null +++ b/plugins/fluidfft-build-deps/pyproject.toml @@ -0,0 +1,15 @@ +[build-system] +requires = ["flit_core >=3.2,<4"] +build-backend = "flit_core.buildapi" + +[project] +name = "fluidfft_build_deps" +version = "0.0.1" +description = "Fluidfft plugin dependencies" +authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] +license = {file = "LICENSE"} +classifiers = ["License :: OSI Approved :: MIT License"] +dependencies = ["fluidfft", "pyfftw"] + +[project.urls] +Home = "https://foss.heptapod.net/fluiddyn/fluidfft" diff --git a/pyproject.toml b/pyproject.toml index f9bb04c..fff5512 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -124,7 +124,7 @@ doc = [ lint = ["black", "pylint"] [tool.pdm.scripts] -black = 'black -l 82 src doc src_cy tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' -black_check = 'black --check -l 82 src doc src_cy tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' +black = 'black -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' +black_check = 'black --check -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' lint = {shell="pylint -rn --rcfile=pylintrc --jobs=$(nproc) src doc tests plugins --exit-zero"} validate_code = {composite = ["black_check", "lint"]} From c06ad9b05f02c83b426e5b52308da52fa26e7df9 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 16:35:30 +0100 Subject: [PATCH 05/36] Forbid ~/.fluidfft-site.cfg and ./site.cfg --- docker/Dockerfile | 2 -- meson.build | 8 ++++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ba3e18d..feec932 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -49,8 +49,6 @@ ENV CPATH=$HOME/.local/include:$CPATH RUN mkdir -p $HOME/.config/matplotlib RUN echo 'backend : agg' > $HOME/.config/matplotlib/matplotlibrc -RUN wget https://foss.heptapod.net/fluiddyn/fluidfft/raw/branch/default/site.cfg.files/site.cfg.docker_mpi -O ~/.fluidfft-site.cfg - RUN wget https://foss.heptapod.net/fluiddyn/fluidfft/raw/branch/default/doc/install/install_p3dfft.sh -O ./install_p3dfft.sh RUN chmod +x install_p3dfft.sh RUN export FCFLAGS="-w -fallow-argument-mismatch -O2" && \ diff --git a/meson.build b/meson.build index fd4da49..c624aeb 100644 --- a/meson.build +++ b/meson.build @@ -10,6 +10,14 @@ project( ], ) +fs = import('fs') +if fs.is_file('site.cfg') + error('Error: site.cfg file exists and is no longer supported') +endif +if fs.is_file('~/.fluidfft-site.cfg') + error('Error: ~/.fluidfft-site.cfg file exists and is no longer supported') +endif + # https://mesonbuild.com/Python-module.html py_mod = import('python') py = py_mod.find_installation('python3', pure: false) From 6283864a2031132608e50003f4d9c607ad002d34 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 14:46:09 +0100 Subject: [PATCH 06/36] ci: run black on plugins --- .../src_cpp/2d/plot_results.py | 31 ++++++----- .../src_cpp/2d/run_benchs.py | 51 ++++++++++++------- 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py index 3baa6da..c031be2 100644 --- a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py +++ b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py @@ -1,4 +1,3 @@ - from runpy import run_path import numpy as np @@ -7,24 +6,24 @@ array = np.array -d = run_path('Results_bench/bench.py') +d = run_path("Results_bench/bench.py") -nb_procs = d['nb_procs'] -times_fft = d['times_fft'] -times_ifft = d['times_ifft'] +nb_procs = d["nb_procs"] +times_fft = d["times_fft"] +times_ifft = d["times_ifft"] fig = plt.figure() ax = plt.gca() for cls, nb_proc in nb_procs.items(): - ax.plot(nb_proc, times_fft[cls], 'bo--') - ax.plot(nb_proc, times_ifft[cls], 'ro--') + ax.plot(nb_proc, times_fft[cls], "bo--") + ax.plot(nb_proc, times_ifft[cls], "ro--") -ax.set_xlabel('number of processes') -ax.set_ylabel('time (s)') +ax.set_xlabel("number of processes") +ax.set_ylabel("time (s)") ind_base = 0 -cls_base = 'FFT2DMPIWithFFTW1D' +cls_base = "FFT2DMPIWithFFTW1D" nb_proc_base = nb_procs[cls_base][ind_base] @@ -34,14 +33,14 @@ for cls, nb_proc in nb_procs.items(): - speedup_fft = times_fft[cls_base][ind_base]/times_fft[cls] - speedup_ifft = times_ifft[cls_base][ind_base]/times_ifft[cls] + speedup_fft = times_fft[cls_base][ind_base] / times_fft[cls] + speedup_ifft = times_ifft[cls_base][ind_base] / times_ifft[cls] - ax.plot(nb_proc, nb_proc_base*speedup_fft/nb_proc, 'bo--') - ax.plot(nb_proc, nb_proc_base*speedup_ifft/nb_proc, 'ro--') + ax.plot(nb_proc, nb_proc_base * speedup_fft / nb_proc, "bo--") + ax.plot(nb_proc, nb_proc_base * speedup_ifft / nb_proc, "ro--") -ax.set_xlabel('number of processes') -ax.set_ylabel('speedup divided by the number of processes') +ax.set_xlabel("number of processes") +ax.set_ylabel("speedup divided by the number of processes") plt.show() diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py index d83acb7..f6cad39 100644 --- a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py +++ b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py @@ -1,11 +1,10 @@ - import os import subprocess32 as subprocess import numpy as np -output_dir = 'Results_bench' +output_dir = "Results_bench" def call_bash(commands): @@ -25,22 +24,22 @@ def call_bash(commands): for i, nb_proc in enumerate(nb_procs_all): - command = './test_bench.out --N0={} --N1={}'.format(N0, N1) + command = "./test_bench.out --N0={} --N1={}".format(N0, N1) if nb_proc != 1: - command = 'mpirun -np {} '.format(nb_proc) + command + command = "mpirun -np {} ".format(nb_proc) + command txt = call_bash(command) - blocks = txt.split('--------') + blocks = txt.split("--------") # print('\n'.join(lines)) for block in blocks: - if 'Initialization' in block: + if "Initialization" in block: lines = block.splitlines() for line in lines: - if line.startswith('Initialization ('): - cls = line.split('(')[1].split(')')[0] + if line.startswith("Initialization ("): + cls = line.split("(")[1].split(")")[0] if cls not in classes: classes.append(cls) nb_procs[cls] = [] @@ -48,16 +47,20 @@ def call_bash(commands): times_ifft[cls] = [] for line in lines: - if line.startswith('nb_proc:'): + if line.startswith("nb_proc:"): nb_procs[cls].append(int(line.split()[1])) - if line.startswith('time fft'): + if line.startswith("time fft"): times_fft[cls].append(float(line.split()[3])) - if line.startswith('time ifft'): + if line.startswith("time ifft"): times_ifft[cls].append(float(line.split()[3])) - print('class ' + cls + - ': times fft and ifft: {:5.3f} ; {:5.3f}'.format( - times_fft[cls][-1], times_ifft[cls][-1])) + print( + "class " + + cls + + ": times fft and ifft: {:5.3f} ; {:5.3f}".format( + times_fft[cls][-1], times_ifft[cls][-1] + ) + ) src = """ from numpy import array @@ -69,12 +72,22 @@ def call_bash(commands): for cls in classes: src += ( - "\nnb_procs['" + cls + "'] = " + repr(np.array(nb_procs[cls])) + - "\ntimes_fft['" + cls + "'] = " + repr(np.array(times_fft[cls])) + - "\ntimes_ifft['" + cls + "'] = " + repr(np.array(times_ifft[cls]))) + "\nnb_procs['" + + cls + + "'] = " + + repr(np.array(nb_procs[cls])) + + "\ntimes_fft['" + + cls + + "'] = " + + repr(np.array(times_fft[cls])) + + "\ntimes_ifft['" + + cls + + "'] = " + + repr(np.array(times_ifft[cls])) + ) if not os.path.exists(output_dir): os.mkdir(output_dir) -with open(output_dir + '/bench.py', 'w') as f: - f.write(src + '\n') +with open(output_dir + "/bench.py", "w") as f: + f.write(src + "\n") From 1ce8fe6b94160ab35946699f05f41f580e3b9aed Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 16:40:06 +0100 Subject: [PATCH 07/36] upgrade pdm.lock --- pdm.lock | 264 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 133 insertions(+), 133 deletions(-) diff --git a/pdm.lock b/pdm.lock index f6ea9b5..283f459 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "build", "dev", "doc", "lint", "mpi", "pyfftw", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:b0cd5d3097b0ce5d9dd24d5e6d0a49614375083d8e5bca3d75198ef401714893" +content_hash = "sha256:fa8fed49b3185142e063643fc76eafe758c30c1287cd69e0ccc147fcede35aeb" [[package]] name = "alabaster" @@ -216,7 +216,7 @@ files = [ [[package]] name = "black" -version = "24.1.0" +version = "24.1.1" requires_python = ">=3.8" summary = "The uncompromising code formatter." groups = ["lint"] @@ -230,24 +230,24 @@ dependencies = [ "typing-extensions>=4.0.1; python_version < \"3.11\"", ] files = [ - {file = "black-24.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:94d5280d020dadfafc75d7cae899609ed38653d3f5e82e7ce58f75e76387ed3d"}, - {file = "black-24.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aaf9aa85aaaa466bf969e7dd259547f4481b712fe7ee14befeecc152c403ee05"}, - {file = "black-24.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec489cae76eac3f7573629955573c3a0e913641cafb9e3bfc87d8ce155ebdb29"}, - {file = "black-24.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:a5a0100b4bdb3744dd68412c3789f472d822dc058bb3857743342f8d7f93a5a7"}, - {file = "black-24.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6cc5a6ba3e671cfea95a40030b16a98ee7dc2e22b6427a6f3389567ecf1b5262"}, - {file = "black-24.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0e367759062dcabcd9a426d12450c6d61faf1704a352a49055a04c9f9ce8f5a"}, - {file = "black-24.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be305563ff4a2dea813f699daaffac60b977935f3264f66922b1936a5e492ee4"}, - {file = "black-24.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:6a8977774929b5db90442729f131221e58cc5d8208023c6af9110f26f75b6b20"}, - {file = "black-24.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d74d4d0da276fbe3b95aa1f404182562c28a04402e4ece60cf373d0b902f33a0"}, - {file = "black-24.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39addf23f7070dbc0b5518cdb2018468ac249d7412a669b50ccca18427dba1f3"}, - {file = "black-24.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:827a7c0da520dd2f8e6d7d3595f4591aa62ccccce95b16c0e94bb4066374c4c2"}, - {file = "black-24.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0cd59d01bf3306ff7e3076dd7f4435fcd2fafe5506a6111cae1138fc7de52382"}, - {file = "black-24.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a15670c650668399c4b5eae32e222728185961d6ef6b568f62c1681d57b381ba"}, - {file = "black-24.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1e0fa70b8464055069864a4733901b31cbdbe1273f63a24d2fa9d726723d45ac"}, - {file = "black-24.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fa8d9aaa22d846f8c0f7f07391148e5e346562e9b215794f9101a8339d8b6d8"}, - {file = "black-24.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:f0dfbfbacfbf9cd1fac7a5ddd3e72510ffa93e841a69fcf4a6358feab1685382"}, - {file = "black-24.1.0-py3-none-any.whl", hash = "sha256:5134a6f6b683aa0a5592e3fd61dd3519d8acd953d93e2b8b76f9981245b65594"}, - {file = "black-24.1.0.tar.gz", hash = "sha256:30fbf768cd4f4576598b1db0202413fafea9a227ef808d1a12230c643cefe9fc"}, + {file = "black-24.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2588021038bd5ada078de606f2a804cadd0a3cc6a79cb3e9bb3a8bf581325a4c"}, + {file = "black-24.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a95915c98d6e32ca43809d46d932e2abc5f1f7d582ffbe65a5b4d1588af7445"}, + {file = "black-24.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fa6a0e965779c8f2afb286f9ef798df770ba2b6cee063c650b96adec22c056a"}, + {file = "black-24.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:5242ecd9e990aeb995b6d03dc3b2d112d4a78f2083e5a8e86d566340ae80fec4"}, + {file = "black-24.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fc1ec9aa6f4d98d022101e015261c056ddebe3da6a8ccfc2c792cbe0349d48b7"}, + {file = "black-24.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0269dfdea12442022e88043d2910429bed717b2d04523867a85dacce535916b8"}, + {file = "black-24.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3d64db762eae4a5ce04b6e3dd745dcca0fb9560eb931a5be97472e38652a161"}, + {file = "black-24.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:5d7b06ea8816cbd4becfe5f70accae953c53c0e53aa98730ceccb0395520ee5d"}, + {file = "black-24.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e2c8dfa14677f90d976f68e0c923947ae68fa3961d61ee30976c388adc0b02c8"}, + {file = "black-24.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a21725862d0e855ae05da1dd25e3825ed712eaaccef6b03017fe0853a01aa45e"}, + {file = "black-24.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07204d078e25327aad9ed2c64790d681238686bce254c910de640c7cc4fc3aa6"}, + {file = "black-24.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:a83fe522d9698d8f9a101b860b1ee154c1d25f8a82ceb807d319f085b2627c5b"}, + {file = "black-24.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:34afe9da5056aa123b8bfda1664bfe6fb4e9c6f311d8e4a6eb089da9a9173bf9"}, + {file = "black-24.1.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:854c06fb86fd854140f37fb24dbf10621f5dab9e3b0c29a690ba595e3d543024"}, + {file = "black-24.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3897ae5a21ca132efa219c029cce5e6bfc9c3d34ed7e892113d199c0b1b444a2"}, + {file = "black-24.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:ecba2a15dfb2d97105be74bbfe5128bc5e9fa8477d8c46766505c1dda5883aac"}, + {file = "black-24.1.1-py3-none-any.whl", hash = "sha256:5cdc2e2195212208fbcae579b931407c1fa9997584f0a415421748aeafff1168"}, + {file = "black-24.1.1.tar.gz", hash = "sha256:48b5760dcbfe5cf97fd4fba23946681f3a81514c6ab8a45b50da67ac8fbc6c7b"}, ] [[package]] @@ -501,109 +501,109 @@ files = [ [[package]] name = "coverage" -version = "7.4.0" +version = "7.4.1" requires_python = ">=3.8" summary = "Code coverage measurement for Python" groups = ["test"] files = [ - {file = "coverage-7.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36b0ea8ab20d6a7564e89cb6135920bc9188fb5f1f7152e94e8300b7b189441a"}, - {file = "coverage-7.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676cd0ba581e514b7f726495ea75aba3eb20899d824636c6f59b0ed2f88c471"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ca5c71a5a1765a0f8f88022c52b6b8be740e512980362f7fdbb03725a0d6b9"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c97726520f784239f6c62506bc70e48d01ae71e9da128259d61ca5e9788516"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:815ac2d0f3398a14286dc2cea223a6f338109f9ecf39a71160cd1628786bc6f5"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:80b5ee39b7f0131ebec7968baa9b2309eddb35b8403d1869e08f024efd883566"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b2ccb7548a0b65974860a78c9ffe1173cfb5877460e5a229238d985565574ae"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:995ea5c48c4ebfd898eacb098164b3cc826ba273b3049e4a889658548e321b43"}, - {file = "coverage-7.4.0-cp310-cp310-win32.whl", hash = "sha256:79287fd95585ed36e83182794a57a46aeae0b64ca53929d1176db56aacc83451"}, - {file = "coverage-7.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5b14b4f8760006bfdb6e08667af7bc2d8d9bfdb648351915315ea17645347137"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04387a4a6ecb330c1878907ce0dc04078ea72a869263e53c72a1ba5bbdf380ca"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea81d8f9691bb53f4fb4db603203029643caffc82bf998ab5b59ca05560f4c06"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74775198b702868ec2d058cb92720a3c5a9177296f75bd97317c787daf711505"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f03940f9973bfaee8cfba70ac991825611b9aac047e5c80d499a44079ec0bc"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485e9f897cf4856a65a57c7f6ea3dc0d4e6c076c87311d4bc003f82cfe199d25"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ae8c9d301207e6856865867d762a4b6fd379c714fcc0607a84b92ee63feff70"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bf477c355274a72435ceb140dc42de0dc1e1e0bf6e97195be30487d8eaaf1a09"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:83c2dda2666fe32332f8e87481eed056c8b4d163fe18ecc690b02802d36a4d26"}, - {file = "coverage-7.4.0-cp311-cp311-win32.whl", hash = "sha256:697d1317e5290a313ef0d369650cfee1a114abb6021fa239ca12b4849ebbd614"}, - {file = "coverage-7.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:26776ff6c711d9d835557ee453082025d871e30b3fd6c27fcef14733f67f0590"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:13eaf476ec3e883fe3e5fe3707caeb88268a06284484a3daf8250259ef1ba143"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846f52f46e212affb5bcf131c952fb4075b55aae6b61adc9856222df89cbe3e2"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26f66da8695719ccf90e794ed567a1549bb2644a706b41e9f6eae6816b398c4a"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:164fdcc3246c69a6526a59b744b62e303039a81e42cfbbdc171c91a8cc2f9446"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:316543f71025a6565677d84bc4df2114e9b6a615aa39fb165d697dba06a54af9"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bb1de682da0b824411e00a0d4da5a784ec6496b6850fdf8c865c1d68c0e318dd"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0e8d06778e8fbffccfe96331a3946237f87b1e1d359d7fbe8b06b96c95a5407a"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a56de34db7b7ff77056a37aedded01b2b98b508227d2d0979d373a9b5d353daa"}, - {file = "coverage-7.4.0-cp312-cp312-win32.whl", hash = "sha256:51456e6fa099a8d9d91497202d9563a320513fcf59f33991b0661a4a6f2ad450"}, - {file = "coverage-7.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd3c1e4cb2ff0083758f09be0f77402e1bdf704adb7f89108007300a6da587d0"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:936d38794044b26c99d3dd004d8af0035ac535b92090f7f2bb5aa9c8e2f5cd42"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:799c8f873794a08cdf216aa5d0531c6a3747793b70c53f70e98259720a6fe2d7"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7defbb9737274023e2d7af02cac77043c86ce88a907c58f42b580a97d5bcca9"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1526d265743fb49363974b7aa8d5899ff64ee07df47dd8d3e37dcc0818f09ed"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf635a52fc1ea401baf88843ae8708591aa4adff875e5c23220de43b1ccf575c"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:756ded44f47f330666843b5781be126ab57bb57c22adbb07d83f6b519783b870"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0eb3c2f32dabe3a4aaf6441dde94f35687224dfd7eb2a7f47f3fd9428e421058"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bfd5db349d15c08311702611f3dccbef4b4e2ec148fcc636cf8739519b4a5c0f"}, - {file = "coverage-7.4.0-cp39-cp39-win32.whl", hash = "sha256:53d7d9158ee03956e0eadac38dfa1ec8068431ef8058fe6447043db1fb40d932"}, - {file = "coverage-7.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfd2a8b6b0d8e66e944d47cdec2f47c48fef2ba2f2dff5a9a75757f64172857e"}, - {file = "coverage-7.4.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:c530833afc4707fe48524a44844493f36d8727f04dcce91fb978c414a8556cc6"}, - {file = "coverage-7.4.0.tar.gz", hash = "sha256:707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, + {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, + {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, + {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, + {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, + {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, + {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, + {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, + {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, + {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, + {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, ] [[package]] name = "coverage" -version = "7.4.0" +version = "7.4.1" extras = ["toml"] requires_python = ">=3.8" summary = "Code coverage measurement for Python" groups = ["test"] dependencies = [ - "coverage==7.4.0", + "coverage==7.4.1", "tomli; python_full_version <= \"3.11.0a6\"", ] files = [ - {file = "coverage-7.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36b0ea8ab20d6a7564e89cb6135920bc9188fb5f1f7152e94e8300b7b189441a"}, - {file = "coverage-7.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676cd0ba581e514b7f726495ea75aba3eb20899d824636c6f59b0ed2f88c471"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ca5c71a5a1765a0f8f88022c52b6b8be740e512980362f7fdbb03725a0d6b9"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c97726520f784239f6c62506bc70e48d01ae71e9da128259d61ca5e9788516"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:815ac2d0f3398a14286dc2cea223a6f338109f9ecf39a71160cd1628786bc6f5"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:80b5ee39b7f0131ebec7968baa9b2309eddb35b8403d1869e08f024efd883566"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b2ccb7548a0b65974860a78c9ffe1173cfb5877460e5a229238d985565574ae"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:995ea5c48c4ebfd898eacb098164b3cc826ba273b3049e4a889658548e321b43"}, - {file = "coverage-7.4.0-cp310-cp310-win32.whl", hash = "sha256:79287fd95585ed36e83182794a57a46aeae0b64ca53929d1176db56aacc83451"}, - {file = "coverage-7.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5b14b4f8760006bfdb6e08667af7bc2d8d9bfdb648351915315ea17645347137"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04387a4a6ecb330c1878907ce0dc04078ea72a869263e53c72a1ba5bbdf380ca"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea81d8f9691bb53f4fb4db603203029643caffc82bf998ab5b59ca05560f4c06"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74775198b702868ec2d058cb92720a3c5a9177296f75bd97317c787daf711505"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f03940f9973bfaee8cfba70ac991825611b9aac047e5c80d499a44079ec0bc"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485e9f897cf4856a65a57c7f6ea3dc0d4e6c076c87311d4bc003f82cfe199d25"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ae8c9d301207e6856865867d762a4b6fd379c714fcc0607a84b92ee63feff70"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bf477c355274a72435ceb140dc42de0dc1e1e0bf6e97195be30487d8eaaf1a09"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:83c2dda2666fe32332f8e87481eed056c8b4d163fe18ecc690b02802d36a4d26"}, - {file = "coverage-7.4.0-cp311-cp311-win32.whl", hash = "sha256:697d1317e5290a313ef0d369650cfee1a114abb6021fa239ca12b4849ebbd614"}, - {file = "coverage-7.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:26776ff6c711d9d835557ee453082025d871e30b3fd6c27fcef14733f67f0590"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:13eaf476ec3e883fe3e5fe3707caeb88268a06284484a3daf8250259ef1ba143"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846f52f46e212affb5bcf131c952fb4075b55aae6b61adc9856222df89cbe3e2"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26f66da8695719ccf90e794ed567a1549bb2644a706b41e9f6eae6816b398c4a"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:164fdcc3246c69a6526a59b744b62e303039a81e42cfbbdc171c91a8cc2f9446"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:316543f71025a6565677d84bc4df2114e9b6a615aa39fb165d697dba06a54af9"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bb1de682da0b824411e00a0d4da5a784ec6496b6850fdf8c865c1d68c0e318dd"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0e8d06778e8fbffccfe96331a3946237f87b1e1d359d7fbe8b06b96c95a5407a"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a56de34db7b7ff77056a37aedded01b2b98b508227d2d0979d373a9b5d353daa"}, - {file = "coverage-7.4.0-cp312-cp312-win32.whl", hash = "sha256:51456e6fa099a8d9d91497202d9563a320513fcf59f33991b0661a4a6f2ad450"}, - {file = "coverage-7.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd3c1e4cb2ff0083758f09be0f77402e1bdf704adb7f89108007300a6da587d0"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:936d38794044b26c99d3dd004d8af0035ac535b92090f7f2bb5aa9c8e2f5cd42"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:799c8f873794a08cdf216aa5d0531c6a3747793b70c53f70e98259720a6fe2d7"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7defbb9737274023e2d7af02cac77043c86ce88a907c58f42b580a97d5bcca9"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1526d265743fb49363974b7aa8d5899ff64ee07df47dd8d3e37dcc0818f09ed"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf635a52fc1ea401baf88843ae8708591aa4adff875e5c23220de43b1ccf575c"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:756ded44f47f330666843b5781be126ab57bb57c22adbb07d83f6b519783b870"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0eb3c2f32dabe3a4aaf6441dde94f35687224dfd7eb2a7f47f3fd9428e421058"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bfd5db349d15c08311702611f3dccbef4b4e2ec148fcc636cf8739519b4a5c0f"}, - {file = "coverage-7.4.0-cp39-cp39-win32.whl", hash = "sha256:53d7d9158ee03956e0eadac38dfa1ec8068431ef8058fe6447043db1fb40d932"}, - {file = "coverage-7.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfd2a8b6b0d8e66e944d47cdec2f47c48fef2ba2f2dff5a9a75757f64172857e"}, - {file = "coverage-7.4.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:c530833afc4707fe48524a44844493f36d8727f04dcce91fb978c414a8556cc6"}, - {file = "coverage-7.4.0.tar.gz", hash = "sha256:707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7"}, + {file = "coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3277f5fa7483c927fe3a7b017b39351610265308f5267ac6d4c2b64cc1d8d25"}, + {file = "coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6008adeca04a445ea6ef31b2cbaf1d01d02986047606f7da266629afee982630"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c61f66d93d712f6e03369b6a7769233bfda880b12f417eefdd4f16d1deb2fc4c"}, + {file = "coverage-7.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9bb62fac84d5f2ff523304e59e5c439955fb3b7f44e3d7b2085184db74d733b"}, + {file = "coverage-7.4.1-cp310-cp310-win32.whl", hash = "sha256:f86f368e1c7ce897bf2457b9eb61169a44e2ef797099fb5728482b8d69f3f016"}, + {file = "coverage-7.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:869b5046d41abfea3e381dd143407b0d29b8282a904a19cb908fa24d090cc018"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295"}, + {file = "coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18e961aa13b6d47f758cc5879383d27b5b3f3dcd9ce8cdbfdc2571fe86feb4dd"}, + {file = "coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6b00e21f86598b6330f0019b40fb397e705135040dbedc2ca9a93c7441178e74"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:536d609c6963c50055bab766d9951b6c394759190d03311f3e9fcf194ca909e1"}, + {file = "coverage-7.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7ac8f8eb153724f84885a1374999b7e45734bf93a87d8df1e7ce2146860edef6"}, + {file = "coverage-7.4.1-cp311-cp311-win32.whl", hash = "sha256:f3771b23bb3675a06f5d885c3630b1d01ea6cac9e84a01aaf5508706dba546c5"}, + {file = "coverage-7.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:9d2f9d4cc2a53b38cabc2d6d80f7f9b7e3da26b2f53d48f05876fef7956b6968"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581"}, + {file = "coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0860a348bf7004c812c8368d1fc7f77fe8e4c095d661a579196a9533778e156"}, + {file = "coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3468cc8720402af37b6c6e7e2a9cdb9f6c16c728638a2ebc768ba1ef6f26c3a1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:02f2edb575d62172aa28fe00efe821ae31f25dc3d589055b3fb64d51e52e4ab1"}, + {file = "coverage-7.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ca6e61dc52f601d1d224526360cdeab0d0712ec104a2ce6cc5ccef6ed9a233bc"}, + {file = "coverage-7.4.1-cp312-cp312-win32.whl", hash = "sha256:ca7b26a5e456a843b9b6683eada193fc1f65c761b3a473941efe5a291f604c74"}, + {file = "coverage-7.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:85ccc5fa54c2ed64bd91ed3b4a627b9cce04646a659512a051fa82a92c04a448"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54"}, + {file = "coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aeb2c2688ed93b027eb0d26aa188ada34acb22dceea256d76390eea135083950"}, + {file = "coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0491275c3b9971cdbd28a4595c2cb5838f08036bca31765bad5e17edf900b2c7"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8dfc5e195bbef80aabd81596ef52a1277ee7143fe419efc3c4d8ba2754671756"}, + {file = "coverage-7.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1a78b656a4d12b0490ca72651fe4d9f5e07e3c6461063a9b6265ee45eb2bdd35"}, + {file = "coverage-7.4.1-cp39-cp39-win32.whl", hash = "sha256:f90515974b39f4dea2f27c0959688621b46d96d5a626cf9c53dbc653a895c05c"}, + {file = "coverage-7.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:64e723ca82a84053dd7bfcc986bdb34af8d9da83c521c19d6b472bc6880e191a"}, + {file = "coverage-7.4.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:32a8d985462e37cfdab611a6f95b09d7c091d07668fdc26e47a725ee575fe166"}, + {file = "coverage-7.4.1.tar.gz", hash = "sha256:1ed4b95480952b1a26d863e546fa5094564aa0065e1e5f0d4d0041f293251d04"}, ] [[package]] @@ -622,7 +622,7 @@ name = "cython" version = "3.0.8" requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" summary = "The Cython compiler for writing C extensions in the Python language." -groups = ["build", "test"] +groups = ["test"] files = [ {file = "Cython-3.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a846e0a38e2b24e9a5c5dc74b0e54c6e29420d88d1dafabc99e0fc0f3e338636"}, {file = "Cython-3.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45523fdc2b78d79b32834cc1cc12dc2ca8967af87e22a3ee1bff20e77c7f5520"}, @@ -707,13 +707,13 @@ files = [ [[package]] name = "dill" -version = "0.3.7" -requires_python = ">=3.7" +version = "0.3.8" +requires_python = ">=3.8" summary = "serialize all of Python" groups = ["lint"] files = [ - {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, - {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [[package]] @@ -1389,7 +1389,7 @@ files = [ [[package]] name = "jupyterlab" -version = "4.0.11" +version = "4.0.12" requires_python = ">=3.8" summary = "JupyterLab computational environment" groups = ["doc"] @@ -1409,8 +1409,8 @@ dependencies = [ "traitlets", ] files = [ - {file = "jupyterlab-4.0.11-py3-none-any.whl", hash = "sha256:536bf0e78723153a5016ca7efb88ed0ecd7070d3f1555d5b0e2770658f900a3c"}, - {file = "jupyterlab-4.0.11.tar.gz", hash = "sha256:d1aec24712566bc25a36229788242778e498ca4088028e2f9aa156b8b7fdc8fc"}, + {file = "jupyterlab-4.0.12-py3-none-any.whl", hash = "sha256:53f132480e5f6564f4e20d1b5ed4e8b7945952a2decd5bdfa43760b1b536c99d"}, + {file = "jupyterlab-4.0.12.tar.gz", hash = "sha256:965d92efa82a538ed70ccb3968d9aabba788840da882e13d7b061780cdedc3b7"}, ] [[package]] @@ -1956,13 +1956,13 @@ files = [ [[package]] name = "overrides" -version = "7.6.0" +version = "7.7.0" requires_python = ">=3.6" summary = "A decorator to automatically detect mismatch when overriding a method." groups = ["doc"] files = [ - {file = "overrides-7.6.0-py3-none-any.whl", hash = "sha256:c36e6635519ea9c5b043b65c36d4b886aee8bd45b7d4681d2a6df0898df4b654"}, - {file = "overrides-7.6.0.tar.gz", hash = "sha256:01e15bbbf15b766f0675c275baa1878bd1c7dc9bc7b9ee13e677cdba93dc1bd9"}, + {file = "overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49"}, + {file = "overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a"}, ] [[package]] @@ -2343,8 +2343,8 @@ files = [ [[package]] name = "pytest" -version = "7.4.4" -requires_python = ">=3.7" +version = "8.0.0" +requires_python = ">=3.8" summary = "pytest: simple powerful testing with Python" groups = ["test"] dependencies = [ @@ -2352,12 +2352,12 @@ dependencies = [ "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", "iniconfig", "packaging", - "pluggy<2.0,>=0.12", + "pluggy<2.0,>=1.3.0", "tomli>=1.0.0; python_version < \"3.11\"", ] files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"}, + {file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"}, ] [[package]] @@ -2420,12 +2420,12 @@ files = [ [[package]] name = "pytz" -version = "2023.3.post1" +version = "2023.4" summary = "World timezone definitions, modern and historical" groups = ["doc"] files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, + {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, + {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, ] [[package]] @@ -2617,7 +2617,7 @@ files = [ [[package]] name = "referencing" -version = "0.32.1" +version = "0.33.0" requires_python = ">=3.8" summary = "JSON Referencing + Python" groups = ["doc"] @@ -2626,8 +2626,8 @@ dependencies = [ "rpds-py>=0.7.0", ] files = [ - {file = "referencing-0.32.1-py3-none-any.whl", hash = "sha256:7e4dc12271d8e15612bfe35792f5ea1c40970dadf8624602e33db2758f7ee554"}, - {file = "referencing-0.32.1.tar.gz", hash = "sha256:3c57da0513e9563eb7e203ebe9bb3a1b509b042016433bd1e45a2853466c3dd3"}, + {file = "referencing-0.33.0-py3-none-any.whl", hash = "sha256:39240f2ecc770258f28b642dd47fd74bc8b02484de54e1882b74b35ebd779bd5"}, + {file = "referencing-0.33.0.tar.gz", hash = "sha256:c775fedf74bc0f9189c2a3be1c12fd03e8c23f4d371dce795df44e06c5b412f7"}, ] [[package]] @@ -3192,13 +3192,13 @@ files = [ [[package]] name = "urllib3" -version = "2.1.0" +version = "2.2.0" requires_python = ">=3.8" summary = "HTTP library with thread-safe connection pooling, file post, and more." groups = ["doc"] files = [ - {file = "urllib3-2.1.0-py3-none-any.whl", hash = "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3"}, - {file = "urllib3-2.1.0.tar.gz", hash = "sha256:df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"}, + {file = "urllib3-2.2.0-py3-none-any.whl", hash = "sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224"}, + {file = "urllib3-2.2.0.tar.gz", hash = "sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20"}, ] [[package]] diff --git a/pyproject.toml b/pyproject.toml index fff5512..36027b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -95,7 +95,7 @@ distribution = true package-dir = "src" [tool.pdm.dev-dependencies] -build = ["setuptools", "transonic", "pythran", "wheel", "jinja2", "cython"] +build = ["setuptools", "transonic", "pythran", "wheel", "jinja2"] # plugins = [ # "-e fluidfft-mpi4pyfft @ file:///${PROJECT_ROOT}/plugins/fluidfft-mpi4pyfft", From 90914ca9f9c58c20b56c2589d19ea66327fa0d18 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 17:33:12 +0100 Subject: [PATCH 08/36] fix doc paths --- doc/conf.py | 4 +++- .../fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/conf.py b/doc/conf.py index 524199a..3d04667 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -94,7 +94,9 @@ def save_fig_scaling(dir_name, dim, n0, n1, n2=None): except OSError: print("Can not find doxygen to generate the documentation of the cpp code.") -run_path("../src_cy/create_fake_mod_for_doc.py") +run_path( + "../plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py" +) # -- General configuration ---------------------------------------------------- diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py index afa8dbd..02f088e 100644 --- a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py +++ b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py @@ -102,8 +102,10 @@ def create_fake_mod(dimension): + "\n" ) - name = "../src/fluidfft/fft{dim}d/fake_mod_fft{dim}d_for_doc.py".format( - dim=dimension + name = ( + "../../../../src/fluidfft/fft{dim}d/fake_mod_fft{dim}d_for_doc.py".format( + dim=dimension + ) ) with open(os.path.join(here, name), "w") as f: From 06644290b6eda5f1b728f89b8f98100063322349 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 17:12:19 +0100 Subject: [PATCH 09/36] TO REMOVE: comment .fluidfft-site.cfg test for ci --- meson.build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index c624aeb..792efae 100644 --- a/meson.build +++ b/meson.build @@ -14,9 +14,10 @@ fs = import('fs') if fs.is_file('site.cfg') error('Error: site.cfg file exists and is no longer supported') endif -if fs.is_file('~/.fluidfft-site.cfg') - error('Error: ~/.fluidfft-site.cfg file exists and is no longer supported') -endif +# TODO : uncomment while Docker file is updated +# if fs.is_file('~/.fluidfft-site.cfg') +# error('Error: ~/.fluidfft-site.cfg file exists and is no longer supported') +# endif # https://mesonbuild.com/Python-module.html py_mod = import('python') From 6a3d505819ccaabebd031ca291961f27f165634c Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 14:09:44 +0100 Subject: [PATCH 10/36] WIP: add fluidfft-fftw plugin --- plugins/fluidfft-fftw/LICENSE | 21 +++++++++++ plugins/fluidfft-fftw/meson.build | 18 ++++++++++ plugins/fluidfft-fftw/pyproject.toml | 35 +++++++++++++++++++ .../src/fluidfft_fftw/__init__.py | 0 .../src/fluidfft_fftw/fft1d/__init__.py | 0 .../src/fluidfft_fftw/fft1d/meson.build | 8 +++++ .../src/fluidfft_fftw/fft2d/__init__.py | 0 .../src/fluidfft_fftw/fft2d/meson.build | 25 +++++++++++++ .../src/fluidfft_fftw/fft3d/__init__.py | 0 .../src/fluidfft_fftw/fft3d/meson.build | 8 +++++ .../src/fluidfft_fftw/meson.build | 12 +++++++ pyproject.toml | 5 --- 12 files changed, 127 insertions(+), 5 deletions(-) create mode 100644 plugins/fluidfft-fftw/LICENSE create mode 100644 plugins/fluidfft-fftw/meson.build create mode 100644 plugins/fluidfft-fftw/pyproject.toml create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/__init__.py create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/__init__.py create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/__init__.py create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build create mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build diff --git a/plugins/fluidfft-fftw/LICENSE b/plugins/fluidfft-fftw/LICENSE new file mode 100644 index 0000000..4687304 --- /dev/null +++ b/plugins/fluidfft-fftw/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Pierre Augier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build new file mode 100644 index 0000000..3c21b0b --- /dev/null +++ b/plugins/fluidfft-fftw/meson.build @@ -0,0 +1,18 @@ +project( + 'fluidfft-fftw', + 'cpp', + license: 'CeCILL', + meson_version: '>= 1.1.0', + default_options: [ + 'buildtype=release', + 'c_std=c99', + 'cpp_std=c++14', + ], +) + +# https://mesonbuild.com/Python-module.html +py_mod = import('python') +py = py_mod.find_installation('python3', pure: false) +py_dep = py.dependency() + +subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml new file mode 100644 index 0000000..557000d --- /dev/null +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -0,0 +1,35 @@ +[build-system] +requires = [ + "meson-python", + "numpy", + "transonic>=0.6.0", + "fluidfft_build_deps>=0.0.1", + "pythran>=0.9.7", + "jinja2", + "cython", + ] +build-backend = 'mesonpy' + +dependencies = [ + "fluidfft >= 0.3.5", + "transonic >= 0.4", + "importlib_metadata; python_version < '3.10'", +] + +[project] +name = "fluidfft_fftw" +version = "0.0.1" +description = "Fluidfft plugin using fftw" +authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] +license = {file = "LICENSE"} +classifiers = ["License :: OSI Approved :: MIT License"] +dependencies = ["fluidfft", "pyfftw"] + +[project.urls] +Home = "https://foss.heptapod.net/fluiddyn/fluidfft" + +[project.entry-points."fluidfft.plugins"] + +"fft2d.with_fftw1d" = "fluidfft_fftw.fft2d.with_fftw1d" +"fft2d.with_fftw2d" = "fluidfft_fftw.fft2d.with_fftw2d" +"fft3d.with_fftw3d" = "fluidfft_fftw.fft3d.with_fftw3d" diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/__init__.py b/plugins/fluidfft-fftw/src/fluidfft_fftw/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build new file mode 100644 index 0000000..661195c --- /dev/null +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build @@ -0,0 +1,8 @@ +python_sources = [ + '__init__.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft-fftw/ftt1d' +) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/__init__.py b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build new file mode 100644 index 0000000..317520b --- /dev/null +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -0,0 +1,25 @@ +python_sources = [ + '__init__.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft-fftw/ftt2d' +) + +cpp_path = run_command( + py, + [ + '-c', + '''import fluidfft_build_deps.src_cpp +print(fluidfft_build_deps.src_cpp.__path__[0])''' + ], + check: true +).stdout().strip() + + +run_command(['transonic', '--meson', '--backend', backend, 'operators2d.py', 'operators3d.py'], check: true) + +foreach be : backends + subdir('__' + be + '__') +endforeach diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/__init__.py b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build new file mode 100644 index 0000000..9acd1ad --- /dev/null +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build @@ -0,0 +1,8 @@ +python_sources = [ + '__init__.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft-fftw/ftt3d' +) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build new file mode 100644 index 0000000..8edbbf9 --- /dev/null +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build @@ -0,0 +1,12 @@ +python_sources = [ + '__init__.py', +] + +py.install_sources( + python_sources, + subdir: 'fluidfft-fftw' +) + +subdir('fft1d') +subdir('fft2d') +subdir('fft3d') diff --git a/pyproject.toml b/pyproject.toml index 36027b1..092376d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,11 +66,6 @@ fluidfft-bench-analysis = "fluidfft.bench_analysis:run" # "fft3d.with_pyfftw" = "fluidfft.fft3d.with_pyfftw" "fft2d.with_dask" = "fluidfft.fft2d.with_dask" -# should be in fluidfft-fftw -"fft2d.with_fftw1d" = "fluidfft.fft2d.with_fftw1d" -"fft2d.with_fftw2d" = "fluidfft.fft2d.with_fftw2d" -"fft3d.with_fftw3d" = "fluidfft.fft3d.with_fftw3d" - # should be in fluidfft-cuda # (or better HIP?, see https://foss.heptapod.net/fluiddyn/fluidfft/-/merge_requests/46) "fft2d.with_cufft" = "fluidfft.fft2d.with_cufft" From 413b8cf70ba426ca67b8af976ccf0b5f18396e1a Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 17:20:41 +0100 Subject: [PATCH 11/36] WIP: fix github actions --- .github/workflows/ci-linux.yml | 2 - .github/workflows/ci-macos.yml | 5 +- .github/workflows/ci-windows.yml | 19 +- noxfile.py | 1 + pixi.lock | 10488 +++++++++++++++++++++++++++++ pixi.toml | 47 + 6 files changed, 10545 insertions(+), 17 deletions(-) create mode 100644 pixi.lock create mode 100644 pixi.toml diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index f93f045..06895f1 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -38,10 +38,8 @@ jobs: - name: Run tests run: | - cp .github/fluidfft-site-seq.cfg $HOME/.fluidfft-site.cfg nox --session "tests(with_cov=True, with_mpi=False)" make cleanall - cp .github/fluidfft-site-mpi.cfg $HOME/.fluidfft-site.cfg nox --session "tests(with_cov=True, with_mpi=True)" coverage xml diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index f1141cf..c59b388 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -14,7 +14,8 @@ jobs: matrix: python-version: [3.9, "3.11"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: seanmiddleditch/gha-setup-ninja@master - uses: conda-incubator/setup-miniconda@v2 with: environment-file: .github/environment-windows.yml @@ -24,7 +25,7 @@ jobs: use-mamba: true - name: Install run: | - cp .github/fluidfft-site-seq.cfg $HOME/.fluidfft-site.cfg + pip install meson-python pip install -e . -v --no-build-isolation --no-deps pip install plugins/fluidfft-pyfftw - name: Tests diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index cb53822..4ed5f15 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -19,19 +19,12 @@ jobs: python-version: [3.8, 3.9, "3.10"] steps: - - uses: actions/checkout@v2 - - uses: conda-incubator/setup-miniconda@v2 + - uses: actions/checkout@v3 + - uses: prefix-dev/setup-pixi@v0.4.1 with: - environment-file: .github/environment-windows.yml - miniforge-variant: Mambaforge - miniforge-version: latest - activate-environment: test - use-mamba: true - - name: Install - run: | - cp .github/pythranrc-windows $HOME/.pythranrc - pip install -e . -v --no-build-isolation --no-deps - pip install plugins/fluidfft-pyfftw + pixi-version: v0.11.1 + cache: false - name: Tests run: | - pytest -v tests plugins/fluidfft-pyfftw + pixi run install-editable + pixi run pytest -v tests plugins/fluidfft-pyfftw diff --git a/noxfile.py b/noxfile.py index 294dc7e..63d49e1 100644 --- a/noxfile.py +++ b/noxfile.py @@ -53,6 +53,7 @@ def tests(session, with_mpi, with_cov): session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) session.install("-e", "plugins/fluidfft-pyfftw") + session.install("-e", "plugins/fluidfft-build-deps") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 0000000..cd891bd --- /dev/null +++ b/pixi.lock @@ -0,0 +1,10488 @@ +version: 3 +metadata: + content_hash: + linux-64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d + win-64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d + channels: + - url: https://conda.anaconda.org/conda-forge/ + used_env_vars: [] + platforms: + - linux-64 + - win-64 + sources: [] + time_metadata: null + git_metadata: null + inputs_metadata: null + custom_metadata: null +package: +- platform: linux-64 + name: _libgcc_mutex + version: '0.1' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + build: conda_forge + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: None + size: 2562 + timestamp: 1578324546067 +- platform: linux-64 + name: _openmp_mutex + version: '4.5' + category: main + manager: conda + dependencies: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + build: 2_gnu + arch: x86_64 + subdir: linux-64 + build_number: 16 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + size: 23621 + timestamp: 1650670423406 +- platform: linux-64 + name: alsa-lib + version: 1.2.10 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.10-hd590300_0.conda + hash: + md5: 75dae9a4201732aa78a530b826ee5fe0 + sha256: 51147922bad9d3176e780eb26f748f380cd3184896a9f9125d8ac64fe330158b + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later + license_family: GPL + size: 554938 + timestamp: 1693607226431 +- platform: linux-64 + name: aom + version: 3.7.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/aom-3.7.1-h59595ed_0.conda + hash: + md5: 504e70332b8322cda93b7bceb5925fca + sha256: 57ad60805ffc7097a690d6d0e07ba432a3dae187158e13001c392177358478f9 + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 2688122 + timestamp: 1700530526866 +- platform: win-64 + name: aom + version: 3.7.1 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/aom-3.7.1-h63175ca_0.conda + hash: + md5: 1b52cb3995f780a5c0a52fc1bb81b337 + sha256: aa317fd3271b4fabbfe3b800cc0d55a9bbfb9b5aa7f91bfb08c86f2da08d2729 + build: h63175ca_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 1955945 + timestamp: 1700530921759 +- platform: linux-64 + name: asttokens + version: 2.4.1 + category: main + manager: conda + dependencies: + - python >=3.5 + - six >=1.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 5f25798dcefd8252ce5f9dc494d5f571 + sha256: 708168f026df19a0344983754d27d1f7b28bb21afc7b97a82f02c4798a3d2111 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 28922 + timestamp: 1698341257884 + purls: + - pkg:pypi/asttokens +- platform: win-64 + name: asttokens + version: 2.4.1 + category: main + manager: conda + dependencies: + - python >=3.5 + - six >=1.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 5f25798dcefd8252ce5f9dc494d5f571 + sha256: 708168f026df19a0344983754d27d1f7b28bb21afc7b97a82f02c4798a3d2111 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 28922 + timestamp: 1698341257884 + purls: + - pkg:pypi/asttokens +- platform: linux-64 + name: astunparse + version: 1.6.3 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.6.1,<2.0 + url: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 000b6f68a0bfaba800ced7500c11780f + sha256: e5173d1ed038038e24c0623f0219dc587ee8663cf7efa737e7075128edbc6c60 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause AND PSF-2.0 + noarch: python + size: 15539 + timestamp: 1610696401707 + purls: + - pkg:pypi/astunparse +- platform: win-64 + name: astunparse + version: 1.6.3 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.6.1,<2.0 + url: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 000b6f68a0bfaba800ced7500c11780f + sha256: e5173d1ed038038e24c0623f0219dc587ee8663cf7efa737e7075128edbc6c60 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause AND PSF-2.0 + noarch: python + size: 15539 + timestamp: 1610696401707 + purls: + - pkg:pypi/astunparse +- platform: linux-64 + name: attr + version: 2.5.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/attr-2.5.1-h166bdaf_1.tar.bz2 + hash: + md5: d9c69a24ad678ffce24c6543a0176b00 + sha256: 82c13b1772c21fc4a17441734de471d3aabf82b61db9b11f4a1bd04a9c4ac324 + build: h166bdaf_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: GPL-2.0-or-later + license_family: GPL + size: 71042 + timestamp: 1660065501192 +- platform: linux-64 + name: attrs + version: 23.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + hash: + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea + build: pyh71513ae_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 54582 + timestamp: 1704011393776 + purls: + - pkg:pypi/attrs +- platform: win-64 + name: attrs + version: 23.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + hash: + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea + build: pyh71513ae_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 54582 + timestamp: 1704011393776 + purls: + - pkg:pypi/attrs +- platform: linux-64 + name: autopep8 + version: 2.0.4 + category: main + manager: conda + dependencies: + - packaging + - pycodestyle >=2.10.0 + - python >=3.6 + - tomli + url: https://conda.anaconda.org/conda-forge/noarch/autopep8-2.0.4-pyhd8ed1ab_0.conda + hash: + md5: 1053857605b5139c8f9818a029a71913 + sha256: 5d9de00093c8757939df773754a76341f908bd7d6aaa65005e8dbae5632bac73 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 45709 + timestamp: 1693061409657 + purls: + - pkg:pypi/autopep8 +- platform: win-64 + name: autopep8 + version: 2.0.4 + category: main + manager: conda + dependencies: + - packaging + - pycodestyle >=2.10.0 + - python >=3.6 + - tomli + url: https://conda.anaconda.org/conda-forge/noarch/autopep8-2.0.4-pyhd8ed1ab_0.conda + hash: + md5: 1053857605b5139c8f9818a029a71913 + sha256: 5d9de00093c8757939df773754a76341f908bd7d6aaa65005e8dbae5632bac73 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 45709 + timestamp: 1693061409657 + purls: + - pkg:pypi/autopep8 +- platform: linux-64 + name: beniget + version: 0.4.1 + category: main + manager: conda + dependencies: + - gast >=0.5.0,<0.6.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/beniget-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 66744e23ceca50ebb022b0a6cba866a8 + sha256: 767cecb8b32d981f5c666eac1cc231d6fbcb29042124efe1b921a9de9201924b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12659 + timestamp: 1627922710217 + purls: + - pkg:pypi/beniget +- platform: win-64 + name: beniget + version: 0.4.1 + category: main + manager: conda + dependencies: + - gast >=0.5.0,<0.6.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/beniget-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 66744e23ceca50ebb022b0a6cba866a8 + sha256: 767cecb8b32d981f5c666eac1cc231d6fbcb29042124efe1b921a9de9201924b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12659 + timestamp: 1627922710217 + purls: + - pkg:pypi/beniget +- platform: linux-64 + name: binutils_impl_linux-64 + version: '2.40' + category: main + manager: conda + dependencies: + - ld_impl_linux-64 2.40 h41732ed_0 + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.40-hf600244_0.conda + hash: + md5: 33084421a8c0af6aef1b439707f7662a + sha256: a7e0ea2b71a5b03d82e5a58fb6b612ab1c44d72ce161f9aa441f7ba467cd4c8d + build: hf600244_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: GPL-3.0-only + license_family: GPL + size: 5414922 + timestamp: 1674833958334 +- platform: linux-64 + name: binutils_linux-64 + version: '2.40' + category: main + manager: conda + dependencies: + - binutils_impl_linux-64 2.40.* + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.40-hbdbef99_2.conda + hash: + md5: adfebae9fdc63a598495dfe3b006973a + sha256: 333f3339d94c93bcc02a723e3e460cb6ff6075e05f5247e15bef5dcdcec541a3 + build: hbdbef99_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 28178 + timestamp: 1694604071236 +- platform: linux-64 + name: blosc + version: 1.21.5 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - snappy >=1.1.10,<2.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.5-h0f2a231_0.conda + hash: + md5: 009521b7ed97cca25f8f997f9e745976 + sha256: e2b15b017775d1bda8edbb1bc48e545e45364edefa4d926732fc5488cc600731 + build: h0f2a231_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 48692 + timestamp: 1693657088079 +- platform: win-64 + name: blosc + version: 1.21.5 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - snappy >=1.1.10,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.5-hdccc3a2_0.conda + hash: + md5: 77a5cea2ce92907b7d1e7954457a526a + sha256: 73cee35e5366ce998ef36ccccb4c11ef9ead297886cc08269379f91539131288 + build: hdccc3a2_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 50069 + timestamp: 1693657396550 +- platform: linux-64 + name: brotli + version: 1.1.0 + category: main + manager: conda + dependencies: + - brotli-bin 1.1.0 hd590300_1 + - libbrotlidec 1.1.0 hd590300_1 + - libbrotlienc 1.1.0 hd590300_1 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hd590300_1.conda + hash: + md5: f27a24d46e3ea7b70a1f98e50c62508f + sha256: f2d918d351edd06c55a6c2d84b488fe392f85ea018ff227daac07db22b408f6b + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 19383 + timestamp: 1695990069230 +- platform: win-64 + name: brotli + version: 1.1.0 + category: main + manager: conda + dependencies: + - brotli-bin 1.1.0 hcfcfb64_1 + - libbrotlidec 1.1.0 hcfcfb64_1 + - libbrotlienc 1.1.0 hcfcfb64_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-1.1.0-hcfcfb64_1.conda + hash: + md5: f47f6db2528e38321fb00ae31674c133 + sha256: b927c95121c5f3d82fe084730281739fb04621afebf2d9f05711a0f42d27e326 + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 19772 + timestamp: 1695990547936 +- platform: linux-64 + name: brotli-bin + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlidec 1.1.0 hd590300_1 + - libbrotlienc 1.1.0 hd590300_1 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hd590300_1.conda + hash: + md5: 39f910d205726805a958da408ca194ba + sha256: a641abfbaec54f454c8434061fffa7fdaa9c695e8a5a400ed96b4f07c0c00677 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 18980 + timestamp: 1695990054140 +- platform: win-64 + name: brotli-bin + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlidec 1.1.0 hcfcfb64_1 + - libbrotlienc 1.1.0 hcfcfb64_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.1.0-hcfcfb64_1.conda + hash: + md5: 0105229d7c5fabaa840043a86c10ec64 + sha256: 4fbcb8f94acc97b2b04adbc64e304acd7c06fa0cf01953527bddae46091cc942 + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 20885 + timestamp: 1695990517506 +- platform: linux-64 + name: brunsli + version: '0.1' + category: main + manager: conda + dependencies: + - brotli >=1.0.9,<2.0a0 + - libgcc-ng >=9.3.0 + - libstdcxx-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/brunsli-0.1-h9c3ff4c_0.tar.bz2 + hash: + md5: c1ac6229d0bfd14f8354ff9ad2a26cad + sha256: 36da32e5a6beab7a9af39be1c8f42e5eca716e64562cb9d5e0d559c14406b11d + build: h9c3ff4c_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 204879 + timestamp: 1607309237341 +- platform: linux-64 + name: bzip2 + version: 1.0.8 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + hash: + md5: 69b8b6202a07720f448be700e300ccf4 + sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 + build: hd590300_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + license: bzip2-1.0.6 + license_family: BSD + size: 254228 + timestamp: 1699279927352 +- platform: win-64 + name: bzip2 + version: 1.0.8 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda + hash: + md5: 26eb8ca6ea332b675e11704cce84a3be + sha256: ae5f47a5c86fd6db822931255dcf017eb12f60c77f07dc782ccb477f7808aab2 + build: hcfcfb64_5 + arch: x86_64 + subdir: win-64 + build_number: 5 + license: bzip2-1.0.6 + license_family: BSD + size: 124580 + timestamp: 1699280668742 +- platform: linux-64 + name: c-ares + version: 1.25.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + hash: + md5: 89e40af02dd3a0846c0c1131c5126706 + sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 156989 + timestamp: 1704784109506 +- platform: linux-64 + name: c-blosc2 + version: 2.12.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - lz4-c >=1.9.3,<1.10.0a0 + - zlib-ng >=2.0.7,<2.1.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.12.0-hb4ffafa_0.conda + hash: + md5: 1a9b16afb84d734a1bb2d196c308d477 + sha256: 68ae377f7baeb616e5a24facadebd8bf7a9cd48a297124be9d814ba92ff5e40f + build: hb4ffafa_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 333736 + timestamp: 1703769067617 +- platform: win-64 + name: c-blosc2 + version: 2.12.0 + category: main + manager: conda + dependencies: + - lz4-c >=1.9.3,<1.10.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zlib-ng >=2.0.7,<2.1.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/c-blosc2-2.12.0-h183a6f4_0.conda + hash: + md5: 8d11feddc57240e433ad7c222fb934f1 + sha256: a45391d61c15b27150d59607079a00b5547edcfdbe1cc2d4c409aa36888ef799 + build: h183a6f4_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 208802 + timestamp: 1703769684013 +- platform: linux-64 + name: ca-certificates + version: 2023.11.17 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda + hash: + md5: 01ffc8d36f9eba0ce0b3c1955fa780ee + sha256: fb4b9f4b7d885002db0b93e22f44b5b03791ef3d4efdc9d0662185a0faafd6b6 + build: hbcca054_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: ISC + size: 154117 + timestamp: 1700280881924 +- platform: win-64 + name: ca-certificates + version: 2023.11.17 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2023.11.17-h56e8100_0.conda + hash: + md5: 1163114b483f26761f993c709e65271f + sha256: c6177e2a4967db7a4e929c6ecd2fafde36e489dbeda23ceda640f4915cb0e877 + build: h56e8100_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: ISC + size: 154700 + timestamp: 1700281021312 +- platform: linux-64 + name: cached-property + version: 1.5.2 + category: main + manager: conda + dependencies: + - cached_property >=1.5.2,<1.5.3.0a0 + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + hash: + md5: 9b347a7ec10940d3f7941ff6c460b551 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + build: hd8ed1ab_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 4134 + timestamp: 1615209571450 +- platform: win-64 + name: cached-property + version: 1.5.2 + category: main + manager: conda + dependencies: + - cached_property >=1.5.2,<1.5.3.0a0 + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + hash: + md5: 9b347a7ec10940d3f7941ff6c460b551 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + build: hd8ed1ab_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 4134 + timestamp: 1615209571450 +- platform: linux-64 + name: cached_property + version: 1.5.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + hash: + md5: 576d629e47797577ab0f1b351297ef4a + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + build: pyha770c72_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 11065 + timestamp: 1615209567874 + purls: + - pkg:pypi/cached-property +- platform: win-64 + name: cached_property + version: 1.5.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + hash: + md5: 576d629e47797577ab0f1b351297ef4a + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + build: pyha770c72_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 11065 + timestamp: 1615209567874 + purls: + - pkg:pypi/cached-property +- platform: linux-64 + name: cairo + version: 1.18.0 + category: main + manager: conda + dependencies: + - fontconfig >=2.14.2,<3.0a0 + - fonts-conda-ecosystem + - freetype >=2.12.1,<3.0a0 + - icu >=73.2,<74.0a0 + - libgcc-ng >=12 + - libglib >=2.78.0,<3.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libstdcxx-ng >=12 + - libxcb >=1.15,<1.16.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - pixman >=0.42.2,<1.0a0 + - xorg-libice >=1.1.1,<2.0a0 + - xorg-libsm >=1.2.4,<2.0a0 + - xorg-libx11 >=1.8.6,<2.0a0 + - xorg-libxext >=1.3.4,<2.0a0 + - xorg-libxrender >=0.9.11,<0.10.0a0 + - zlib + url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda + hash: + md5: f907bb958910dc404647326ca80c263e + sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e + build: h3faef2a_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-only or MPL-1.1 + size: 982351 + timestamp: 1697028423052 +- platform: linux-64 + name: certifi + version: 2023.11.17 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + hash: + md5: 2011bcf45376341dd1d690263fdbc789 + sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: ISC + noarch: python + size: 158939 + timestamp: 1700303562512 +- platform: win-64 + name: certifi + version: 2023.11.17 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + hash: + md5: 2011bcf45376341dd1d690263fdbc789 + sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: ISC + noarch: python + size: 158939 + timestamp: 1700303562512 +- platform: linux-64 + name: charls + version: 2.4.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/charls-2.4.2-h59595ed_0.conda + hash: + md5: 4336bd67920dd504cd8c6761d6a99645 + sha256: 18f1c43f91ccf28297f92b094c2c8dbe9c6e8241c0d3cbd6cda014a990660fdd + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 150272 + timestamp: 1684262827894 +- platform: win-64 + name: charls + version: 2.4.2 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/charls-2.4.2-h1537add_0.conda + hash: + md5: 0935766a50dfe44315b62ec0046a8779 + sha256: e6a3eab3fe65389900f39a78dc3bd86bbc030e2a746addb8b69a997495ca867c + build: h1537add_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 95857 + timestamp: 1684263404702 +- platform: win-64 + name: clang + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang-17 17.0.6 default_hde6756a_2 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/clang-17.0.6-ha177bd6_2.conda + hash: + md5: 1327aba7174c4819eecf7cc1ba124e92 + sha256: 5a3c5a0ea2a8686ab0c2a5887c6d401ccdeab2422fcd5f48353a428783a6c7c1 + build: ha177bd6_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + constrains: + - clang-tools 17.0.6.* + - llvm 17.0.6.* + - llvm-tools 17.0.6.* + - llvmdev 17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 93457639 + timestamp: 1704280018632 +- platform: win-64 + name: clang-17 + version: 17.0.6 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/clang-17-17.0.6-default_hde6756a_2.conda + hash: + md5: db7a6199209d608e4e5b195743e9bc98 + sha256: fae37a46339269ee167dbd13ff6725089b3f4be987dcd7c0e2e90689bb337c26 + build: default_hde6756a_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + constrains: + - clang-tools 17.0.6 + - clangdev 17.0.6 + - llvm-tools 17.0.6 + - clangxx 17.0.6 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 31821282 + timestamp: 1704279749334 +- platform: win-64 + name: clangxx + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang 17.0.6 ha177bd6_2 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/clangxx-17.0.6-default_hde6756a_2.conda + hash: + md5: 1fdaba75da0eb0b21db6b8f83d91669f + sha256: e34a56aec0078367a5acb30d171aeb150da21fb0d0b0c60da508000dae6315ab + build: default_hde6756a_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 31170271 + timestamp: 1704280338941 +- platform: linux-64 + name: colorama + version: 0.4.6 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 25170 + timestamp: 1666700778190 + purls: + - pkg:pypi/colorama +- platform: win-64 + name: colorama + version: 0.4.6 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 25170 + timestamp: 1666700778190 + purls: + - pkg:pypi/colorama +- platform: linux-64 + name: colorlog + version: 6.8.0 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/colorlog-6.8.0-py310hff52083_0.conda + hash: + md5: 791a8656895abef9e61bf46f629032f5 + sha256: 0456f982e380d208adfe3f716ef25da4250b00ed2a631a1fb0f63031f78dc8bc + build: py310hff52083_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 19507 + timestamp: 1701544400898 + purls: + - pkg:pypi/colorlog +- platform: win-64 + name: colorlog + version: 6.8.0 + category: main + manager: conda + dependencies: + - colorama + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/win-64/colorlog-6.8.0-py310h5588dad_0.conda + hash: + md5: c5b829682d5a25bf7bb50fd0a399b6c0 + sha256: 25a627a634646736c95bfd15047efaeb5be36e07db5128bc34c134f8fdfa763f + build: py310h5588dad_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 20048 + timestamp: 1701544724993 + purls: + - pkg:pypi/colorlog +- platform: linux-64 + name: contourpy + version: 1.2.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.20,<2 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.2.0-py310hd41b1e2_0.conda + hash: + md5: 85d2aaa7af046528d339da1e813c3a9f + sha256: 73dd7868bfd98fa9e4d2cc524687b5c5c8f9d427d4e521875aacfe152eae4715 + build: py310hd41b1e2_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 238877 + timestamp: 1699041552962 + purls: + - pkg:pypi/contourpy +- platform: win-64 + name: contourpy + version: 1.2.0 + category: main + manager: conda + dependencies: + - numpy >=1.20,<2 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.2.0-py310h232114e_0.conda + hash: + md5: 1e281b6290b589e95ab212c9542b0302 + sha256: 1d6f854e78354640f8a4356c8f387cfdd7e8e8c0cf6186490e49fe4e36ef2175 + build: py310h232114e_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 190094 + timestamp: 1699042108042 + purls: + - pkg:pypi/contourpy +- platform: linux-64 + name: coverage + version: 7.4.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tomli + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.4.0-py310h2372a71_0.conda + hash: + md5: a7b8039677f4c7d07924a715172acc27 + sha256: 2241b1a4cab9da266ab8ef8d76ef3b97ac018876d0fac4dbe87ef21a902d09a3 + build: py310h2372a71_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 287570 + timestamp: 1703727308266 + purls: + - pkg:pypi/coverage +- platform: win-64 + name: coverage + version: 7.4.0 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tomli + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.4.0-py310h8d17308_0.conda + hash: + md5: 914af4df2cfa6f116254b7310cc8bb5c + sha256: 9f918c3383d21323f956d0c3e76693f34949137339d5e185298ba42bbdc2e520 + build: py310h8d17308_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 305367 + timestamp: 1703727595421 + purls: + - pkg:pypi/coverage +- platform: linux-64 + name: cycler + version: 0.12.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda + hash: + md5: 5cd86562580f274031ede6aa6aa24441 + sha256: f221233f21b1d06971792d491445fd548224641af9443739b4b7b6d5d72954a8 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 13458 + timestamp: 1696677888423 + purls: + - pkg:pypi/cycler +- platform: win-64 + name: cycler + version: 0.12.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda + hash: + md5: 5cd86562580f274031ede6aa6aa24441 + sha256: f221233f21b1d06971792d491445fd548224641af9443739b4b7b6d5d72954a8 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 13458 + timestamp: 1696677888423 + purls: + - pkg:pypi/cycler +- platform: linux-64 + name: dav1d + version: 1.2.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.2.1-hd590300_0.conda + hash: + md5: 418c6ca5929a611cbd69204907a83995 + sha256: 22053a5842ca8ee1cf8e1a817138cdb5e647eb2c46979f84153f6ad7bde73020 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 760229 + timestamp: 1685695754230 +- platform: win-64 + name: dav1d + version: 1.2.1 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/dav1d-1.2.1-hcfcfb64_0.conda + hash: + md5: ed2c27bda330e3f0ab41577cf8b9b585 + sha256: 2aa2083c9c186da7d6f975ccfbef654ed54fff27f4bc321dbcd12cee932ec2c4 + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 618643 + timestamp: 1685696352968 +- platform: linux-64 + name: dbus + version: 1.13.6 + category: main + manager: conda + dependencies: + - expat >=2.4.2,<3.0a0 + - libgcc-ng >=9.4.0 + - libglib >=2.70.2,<3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 + hash: + md5: ecfff944ba3960ecb334b9a2663d708d + sha256: 8f5f995699a2d9dbdd62c61385bfeeb57c82a681a7c8c5313c395aa0ccab68a5 + build: h5008d03_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-2.0-or-later + license_family: GPL + size: 618596 + timestamp: 1640112124844 +- platform: linux-64 + name: decorator + version: 5.1.1 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 12072 + timestamp: 1641555714315 + purls: + - pkg:pypi/decorator +- platform: win-64 + name: decorator + version: 5.1.1 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 12072 + timestamp: 1641555714315 + purls: + - pkg:pypi/decorator +- platform: linux-64 + name: distro + version: 1.9.0 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda + hash: + md5: bbdb409974cd6cb30071b1d978302726 + sha256: ae1c13d709c8001331b5b9345e4bcd77e9ae712d25f7958b2ebcbe0b068731b7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 42039 + timestamp: 1704321683916 + purls: + - pkg:pypi/distro +- platform: win-64 + name: distro + version: 1.9.0 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda + hash: + md5: bbdb409974cd6cb30071b1d978302726 + sha256: ae1c13d709c8001331b5b9345e4bcd77e9ae712d25f7958b2ebcbe0b068731b7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 42039 + timestamp: 1704321683916 + purls: + - pkg:pypi/distro +- platform: linux-64 + name: entrypoints + version: '0.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3cf04868fee0a029769bd41f4b2fbf2d + sha256: 2ec4a0900a4a9f42615fc04d0fb3286b796abe56590e8e042f6ec25e102dd5af + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 9199 + timestamp: 1643888357950 + purls: + - pkg:pypi/entrypoints +- platform: win-64 + name: entrypoints + version: '0.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3cf04868fee0a029769bd41f4b2fbf2d + sha256: 2ec4a0900a4a9f42615fc04d0fb3286b796abe56590e8e042f6ec25e102dd5af + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 9199 + timestamp: 1643888357950 + purls: + - pkg:pypi/entrypoints +- platform: linux-64 + name: exceptiongroup + version: 1.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda + hash: + md5: f6c211fee3c98229652b60a9a42ef363 + sha256: cf83dcaf9006015c8ccab3fc6770f478464a66a8769e1763ca5d7dff09d11d08 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 20473 + timestamp: 1700579932017 + purls: + - pkg:pypi/exceptiongroup +- platform: win-64 + name: exceptiongroup + version: 1.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + hash: + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d + build: pyhd8ed1ab_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: MIT and PSF-2.0 + noarch: python + size: 20551 + timestamp: 1704921321122 + purls: + - pkg:pypi/exceptiongroup +- platform: linux-64 + name: executing + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: e16be50e378d8a4533b989035b196ab8 + sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 27689 + timestamp: 1698580072627 + purls: + - pkg:pypi/executing +- platform: win-64 + name: executing + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: e16be50e378d8a4533b989035b196ab8 + sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 27689 + timestamp: 1698580072627 + purls: + - pkg:pypi/executing +- platform: linux-64 + name: expat + version: 2.5.0 + category: main + manager: conda + dependencies: + - libexpat 2.5.0 hcb278e6_1 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-hcb278e6_1.conda + hash: + md5: 8b9b5aca60558d02ddaa09d599e55920 + sha256: 36dfeb4375059b3bba75ce9b38c29c69fd257342a79e6cf20e9f25c1523f785f + build: hcb278e6_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 136778 + timestamp: 1680190541750 +- platform: linux-64 + name: fftw + version: 3.3.10 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=11.4.0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/fftw-3.3.10-nompi_hc118613_108.conda + hash: + md5: 6fa90698000b05dfe8ce6515794fe71a + sha256: 1952dbb3c40931fc4608e053e32cbebbdcd8f3ea5b6a050156df6dd66ad64912 + build: nompi_hc118613_108 + arch: x86_64 + subdir: linux-64 + build_number: 108 + license: GPL-2.0-or-later + license_family: GPL + size: 2019717 + timestamp: 1686584867122 +- platform: win-64 + name: fftw + version: 3.3.10 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/fftw-3.3.10-nompi_h38027f0_108.conda + hash: + md5: 09196a7ba69b70d2124aff7b2763035d + sha256: 8db6330c5e1a2da62dd6090750f88f303af95ad151b961f69d83be8cd53e8ada + build: nompi_h38027f0_108 + arch: x86_64 + subdir: win-64 + build_number: 108 + license: GPL-2.0-or-later + license_family: GPL + size: 1376842 + timestamp: 1686584753580 +- platform: linux-64 + name: fluiddyn + version: 0.5.2 + category: main + manager: conda + dependencies: + - distro + - h5netcdf + - h5py + - imageio + - matplotlib-base + - nbstripout + - numpy + - psutil >=5.2.1 + - python >=3.8 + - qtpy + - scikit-image + - scipy + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.2-pyhd8ed1ab_0.conda + hash: + md5: 997e2ce32a60e98b3f032c64a60183a0 + sha256: 432305fc3502ccd87c1db2a898cc2253a1d5e4509219beac01ce0fe84dea6eef + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: CECILL-B + noarch: python + size: 112860 + timestamp: 1678256847926 +- platform: win-64 + name: fluiddyn + version: 0.5.2 + category: main + manager: conda + dependencies: + - distro + - h5netcdf + - h5py + - imageio + - matplotlib-base + - nbstripout + - numpy + - psutil >=5.2.1 + - python >=3.8 + - qtpy + - scikit-image + - scipy + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.2-pyhd8ed1ab_0.conda + hash: + md5: 997e2ce32a60e98b3f032c64a60183a0 + sha256: 432305fc3502ccd87c1db2a898cc2253a1d5e4509219beac01ce0fe84dea6eef + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: CECILL-B + noarch: python + size: 112860 + timestamp: 1678256847926 +- platform: linux-64 + name: fluidfft + version: 0.3.5 + category: main + manager: conda + dependencies: + - fftw >=3.3.10,<4.0a0 + - fluiddyn + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - pandas + - pyfftw + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - transonic + url: https://conda.anaconda.org/conda-forge/linux-64/fluidfft-0.3.5-nompi_hd07f22c_100.conda + hash: + md5: ec874bee06fb66bedcd3641485519e0f + sha256: 93bb694c15cd16d5c65917cca54b1f65d5d994743cd31816e4a5acc15e4bdd8a + build: nompi_hd07f22c_100 + arch: x86_64 + subdir: linux-64 + build_number: 100 + license: LicenseRef-CeCILL + size: 497878 + timestamp: 1695199972097 + purls: + - pkg:pypi/fluidfft +- platform: win-64 + name: fluidfft + version: 0.3.5 + category: main + manager: conda + dependencies: + - fftw >=3.3.10,<4.0a0 + - fluiddyn + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - pandas + - pyfftw + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - transonic + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/fluidfft-0.3.5-nompi_hb3d053f_100.conda + hash: + md5: 64cf3e5bc60722c5fa03c60817fc445e + sha256: f1a61466470e9e106a16caaf1900f80129916d788f44b2289fa52b7263350aa6 + build: nompi_hb3d053f_100 + arch: x86_64 + subdir: win-64 + build_number: 100 + license: LicenseRef-CeCILL + size: 101740 + timestamp: 1695212990223 + purls: + - pkg:pypi/fluidfft +- platform: linux-64 + name: fluidsim-core + version: 0.7.4 + category: main + manager: conda + dependencies: + - entrypoints + - fluiddyn >=0.3.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/fluidsim-core-0.7.4-pyhd8ed1ab_0.conda + hash: + md5: 6e55ee77be6a02b4f09f0d4f779a835e + sha256: 8a6d4c7c9992cd9679118dd043b29c0dd0aa5728750d2d9803b4b7dba5a67f75 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LicenseRef-CeCILL + noarch: python + size: 42531 + timestamp: 1696540098597 + purls: + - pkg:pypi/fluidsim-core +- platform: win-64 + name: fluidsim-core + version: 0.7.4 + category: main + manager: conda + dependencies: + - entrypoints + - fluiddyn >=0.3.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/fluidsim-core-0.7.4-pyhd8ed1ab_0.conda + hash: + md5: 6e55ee77be6a02b4f09f0d4f779a835e + sha256: 8a6d4c7c9992cd9679118dd043b29c0dd0aa5728750d2d9803b4b7dba5a67f75 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LicenseRef-CeCILL + noarch: python + size: 42531 + timestamp: 1696540098597 + purls: + - pkg:pypi/fluidsim-core +- platform: linux-64 + name: font-ttf-dejavu-sans-mono + version: '2.37' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 + hash: + md5: 0c96522c6bdaed4b1566d11387caaf45 + sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b + build: hab24e00_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: generic + size: 397370 + timestamp: 1566932522327 +- platform: linux-64 + name: font-ttf-inconsolata + version: '3.000' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 + hash: + md5: 34893075a5c9e55cdafac56607368fc6 + sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c + build: h77eed37_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: OFL-1.1 + license_family: Other + noarch: generic + size: 96530 + timestamp: 1620479909603 +- platform: linux-64 + name: font-ttf-source-code-pro + version: '2.038' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 + hash: + md5: 4d59c254e01d9cde7957100457e2d5fb + sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 + build: h77eed37_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: OFL-1.1 + license_family: Other + noarch: generic + size: 700814 + timestamp: 1620479612257 +- platform: linux-64 + name: font-ttf-ubuntu + version: '0.83' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda + hash: + md5: 6185f640c43843e5ad6fd1c5372c3f80 + sha256: 056c85b482d58faab5fd4670b6c1f5df0986314cca3bc831d458b22e4ef2c792 + build: h77eed37_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 + license_family: Other + noarch: generic + size: 1619820 + timestamp: 1700944216729 +- platform: linux-64 + name: fontconfig + version: 2.14.2 + category: main + manager: conda + dependencies: + - expat >=2.5.0,<3.0a0 + - freetype >=2.12.1,<3.0a0 + - libgcc-ng >=12 + - libuuid >=2.32.1,<3.0a0 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda + hash: + md5: 0f69b688f52ff6da70bccb7ff7001d1d + sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 + build: h14ed4e7_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 272010 + timestamp: 1674828850194 +- platform: linux-64 + name: fonts-conda-ecosystem + version: '1' + category: main + manager: conda + dependencies: + - fonts-conda-forge + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 + hash: + md5: fee5683a3f04bd15cbd8318b096a27ab + sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 + build: '0' + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: generic + size: 3667 + timestamp: 1566974674465 +- platform: linux-64 + name: fonts-conda-forge + version: '1' + category: main + manager: conda + dependencies: + - font-ttf-dejavu-sans-mono + - font-ttf-inconsolata + - font-ttf-source-code-pro + - font-ttf-ubuntu + url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 + hash: + md5: f766549260d6815b0c52253f1fb1bb29 + sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 + build: '0' + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: generic + size: 4102 + timestamp: 1566932280397 +- platform: linux-64 + name: fonttools + version: 4.47.0 + category: main + manager: conda + dependencies: + - brotli + - libgcc-ng >=12 + - munkres + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - unicodedata2 >=14.0.0 + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py310h2372a71_0.conda + hash: + md5: 27df6604157a2a9e782cbe720f752cf5 + sha256: 468904105e134301032749de8bf613a5cbc61d4de51bce25524716b6386885a4 + build: py310h2372a71_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 2281767 + timestamp: 1702929809830 + purls: + - pkg:pypi/fonttools +- platform: win-64 + name: fonttools + version: 4.47.2 + category: main + manager: conda + dependencies: + - brotli + - munkres + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - unicodedata2 >=14.0.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.47.2-py310h8d17308_0.conda + hash: + md5: f615cdf46c8fed9ed72ce7df523c1dfc + sha256: 1b499e0ae69bcd40a095f0d0b1dcfe22e86ed888ce1ad58493aafe8133f4566a + build: py310h8d17308_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 1894362 + timestamp: 1704980679023 + purls: + - pkg:pypi/fonttools +- platform: linux-64 + name: freetype + version: 2.12.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + hash: + md5: 9ae35c3d96db2c94ce0cef86efdfa2cb + sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + build: h267a509_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: GPL-2.0-only OR FTL + size: 634972 + timestamp: 1694615932610 +- platform: win-64 + name: freetype + version: 2.12.1 + category: main + manager: conda + dependencies: + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + hash: + md5: 3761b23693f768dc75a8fd0a73ca053f + sha256: 2c53ee8879e05e149a9e525481d36adfd660a6abda26fd731376fa64ff03e728 + build: hdaf720e_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: GPL-2.0-only OR FTL + size: 510306 + timestamp: 1694616398888 +- platform: linux-64 + name: gast + version: 0.5.4 + category: main + manager: conda + dependencies: + - python >=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/gast-0.5.4-pyhd8ed1ab_0.conda + hash: + md5: 8189adbad784030b76bbf81c68d7b0d4 + sha256: e029d50d55f8fe8cf9323045f84416b7af50e25a0dc1b978f8ba6b9ca8d53ca7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - pythran >=0.12.2 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 23585 + timestamp: 1688368852991 + purls: + - pkg:pypi/gast +- platform: win-64 + name: gast + version: 0.5.4 + category: main + manager: conda + dependencies: + - python >=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/gast-0.5.4-pyhd8ed1ab_0.conda + hash: + md5: 8189adbad784030b76bbf81c68d7b0d4 + sha256: e029d50d55f8fe8cf9323045f84416b7af50e25a0dc1b978f8ba6b9ca8d53ca7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - pythran >=0.12.2 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 23585 + timestamp: 1688368852991 + purls: + - pkg:pypi/gast +- platform: linux-64 + name: gcc_impl_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: + - binutils_impl_linux-64 >=2.39 + - libgcc-devel_linux-64 13.2.0 ha9c7c90_103 + - libgcc-ng >=13.2.0 + - libgomp >=13.2.0 + - libsanitizer 13.2.0 h7e041cc_3 + - libstdcxx-ng >=13.2.0 + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h338b0a0_3.conda + hash: + md5: 79ae2d39f23e568b18be949973e9a025 + sha256: b74a1367a1f24768b60dd3aef1f836740ec5141b182eded42cefd772244c2a61 + build: h338b0a0_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 52688954 + timestamp: 1699753748621 +- platform: linux-64 + name: gcc_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: + - binutils_linux-64 2.40 hbdbef99_2 + - gcc_impl_linux-64 13.2.0.* + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.2.0-h112eaf3_2.conda + hash: + md5: 7f77e02a151daf27b4a0e1b6c12f68b9 + sha256: c9b61357776b311b910bd696623ba435383314e67af6b2b329cde812caf7d369 + build: h112eaf3_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 30329 + timestamp: 1694604327022 +- platform: linux-64 + name: gettext + version: 0.21.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 + hash: + md5: 14947d8770185e5153fdd04d4673ed37 + sha256: 4fcfedc44e4c9a053f0416f9fc6ab6ed50644fca3a761126dbd00d09db1f546a + build: h27087fc_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later AND GPL-3.0-or-later + size: 4320628 + timestamp: 1665673494324 +- platform: win-64 + name: gettext + version: 0.21.1 + category: main + manager: conda + dependencies: + - libiconv >=1.17,<2.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/gettext-0.21.1-h5728263_0.tar.bz2 + hash: + md5: 299d4fd6798a45337042ff5a48219e5f + sha256: 71c75b0a4dc2cf95d2860ea0076edf9f5558baeb4dacaeecb32643b199074616 + build: h5728263_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LGPL-2.1-or-later AND GPL-3.0-or-later + size: 5579416 + timestamp: 1665676022441 +- platform: linux-64 + name: giflib + version: 5.2.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.1-h0b41bf4_3.conda + hash: + md5: 96f3b11872ef6fad973eac856cd2624f + sha256: 41ec165704ccce2faa0437f4f53c03c06261a2cc9ff7614828e51427d9261f4b + build: h0b41bf4_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: MIT + license_family: MIT + size: 77385 + timestamp: 1678717794467 +- platform: win-64 + name: giflib + version: 5.2.1 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.1-h64bf75a_3.conda + hash: + md5: 86c1ed348767c8249a7501dc142bf65b + sha256: 689ee27564b1c358602821af9fd7ee0467d4b32d534e3eebd366f98f1ef2d638 + build: h64bf75a_3 + arch: x86_64 + subdir: win-64 + build_number: 3 + license: MIT + license_family: MIT + size: 83569 + timestamp: 1678718451021 +- platform: linux-64 + name: glib + version: 2.78.3 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - glib-tools 2.78.3 hfc55251_0 + - libgcc-ng >=12 + - libglib 2.78.3 h783c2da_0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - python * + url: https://conda.anaconda.org/conda-forge/linux-64/glib-2.78.3-hfc55251_0.conda + hash: + md5: e08e51acc7d1ae8dbe13255e7b4c64ac + sha256: 5c0630146185d806a4dd8cedd0e1983bc3a4ad8f9c0f1db8ee5fd28011396316 + build: hfc55251_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 489536 + timestamp: 1702003193690 +- platform: win-64 + name: glib + version: 2.78.3 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - glib-tools 2.78.3 h12be248_0 + - libglib 2.78.3 h16e383f_0 + - libzlib >=1.2.13,<1.3.0a0 + - python * + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/glib-2.78.3-h12be248_0.conda + hash: + md5: a14440f1d004a2ddccd9c1354dbeffdf + sha256: 1d3176b93c17a4cae930441691e18bf2824a235903895dd54c65c641f3da3e64 + build: h12be248_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 506931 + timestamp: 1702003592251 +- platform: linux-64 + name: glib-tools + version: 2.78.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libglib 2.78.3 h783c2da_0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.78.3-hfc55251_0.conda + hash: + md5: 41d2f46e0ac8372eeb959860713d9b21 + sha256: f7f9ed77beb5d0012a501abc7711f338ab9036f8d1e0259e71e3236bfcae2ad2 + build: hfc55251_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 110689 + timestamp: 1702003133163 +- platform: win-64 + name: glib-tools + version: 2.78.3 + category: main + manager: conda + dependencies: + - libglib 2.78.3 h16e383f_0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/glib-tools-2.78.3-h12be248_0.conda + hash: + md5: 03c45e65dbac2ba6c247dfd4896b664c + sha256: 70078a3ec46898e857ba90840446b82a3da5cf658c56980c73ba789fd176c09c + build: h12be248_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 144752 + timestamp: 1702003510059 +- platform: linux-64 + name: graphite2 + version: 1.3.13 + category: main + manager: conda + dependencies: + - libgcc-ng >=7.5.0 + - libstdcxx-ng >=7.5.0 + url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h58526e2_1001.tar.bz2 + hash: + md5: 8c54672728e8ec6aa6db90cf2806d220 + sha256: 65da967f3101b737b08222de6a6a14e20e480e7d523a5d1e19ace7b960b5d6b1 + build: h58526e2_1001 + arch: x86_64 + subdir: linux-64 + build_number: 1001 + license: LGPLv2 + size: 104701 + timestamp: 1604365484436 +- platform: linux-64 + name: gst-plugins-base + version: 1.22.8 + category: main + manager: conda + dependencies: + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.10,<1.2.11.0a0 + - gettext >=0.21.1,<1.0a0 + - gstreamer 1.22.8 h98fc4e7_1 + - libexpat >=2.5.0,<3.0a0 + - libgcc-ng >=12 + - libglib >=2.78.3,<3.0a0 + - libogg >=1.3.4,<1.4.0a0 + - libopus >=1.3.1,<2.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libstdcxx-ng >=12 + - libvorbis >=1.3.7,<1.4.0a0 + - libxcb >=1.15,<1.16.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xorg-libx11 >=1.8.7,<2.0a0 + - xorg-libxau >=1.0.11,<2.0a0 + - xorg-libxext >=1.3.4,<2.0a0 + - xorg-libxrender >=0.9.11,<0.10.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.8-h8e1006c_1.conda + hash: + md5: 3926dab94fe06d88ade0e716d77b8cf8 + sha256: 5d3d3fddd57204976097e01b156f1fa41cfe246a939719d2b72696aa060d1150 + build: h8e1006c_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: LGPL-2.0-or-later + license_family: LGPL + size: 2707117 + timestamp: 1704608229364 +- platform: win-64 + name: gst-plugins-base + version: 1.22.8 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - gstreamer 1.22.8 hb4038d2_1 + - libglib >=2.78.3,<3.0a0 + - libogg >=1.3.4,<1.4.0a0 + - libvorbis >=1.3.7,<1.4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.22.8-h001b923_1.conda + hash: + md5: abe4d4f0820e367987d2ba73a84cf328 + sha256: 76ca48fefb88699d82ebb01ebfa2f28dee0b52055803f4b2c075b7d58cf83531 + build: h001b923_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: LGPL-2.0-or-later + license_family: LGPL + size: 2056819 + timestamp: 1704608568666 +- platform: linux-64 + name: gstreamer + version: 1.22.8 + category: main + manager: conda + dependencies: + - __glibc >=2.17,<3.0.a0 + - gettext >=0.21.1,<1.0a0 + - glib >=2.78.3,<3.0a0 + - libgcc-ng >=12 + - libglib >=2.78.3,<3.0a0 + - libiconv >=1.17,<2.0a0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.8-h98fc4e7_1.conda + hash: + md5: 1b52a89485ab573a5bb83a5225ff706e + sha256: d9d24c2b67a0ea00fc9bb1afc1d45f32da9d341b81ee2830986aa66456da0e66 + build: h98fc4e7_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: LGPL-2.0-or-later + license_family: LGPL + size: 1980992 + timestamp: 1704607965412 +- platform: win-64 + name: gstreamer + version: 1.22.8 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - glib >=2.78.3,<3.0a0 + - libglib >=2.78.3,<3.0a0 + - libiconv >=1.17,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.22.8-hb4038d2_1.conda + hash: + md5: d24ef655de29ac3b1e14aae9cc2eb66b + sha256: 802b22a009d0c8f45dc86de1f7eace313d5fc7e41f852b62d03395a2f1659c79 + build: hb4038d2_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: LGPL-2.0-or-later + license_family: LGPL + size: 1937873 + timestamp: 1704608156356 +- platform: linux-64 + name: gxx_impl_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: + - gcc_impl_linux-64 13.2.0 h338b0a0_3 + - libstdcxx-devel_linux-64 13.2.0 ha9c7c90_103 + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h338b0a0_3.conda + hash: + md5: a5e463121f06f300e5462f98b82d0709 + sha256: 77fb3cb244466a2d7fdfddba6f7853d914a8ee569855803cebe62df9b00d4c04 + build: h338b0a0_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 13191609 + timestamp: 1699754007152 +- platform: linux-64 + name: gxx_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: + - binutils_linux-64 2.40 hbdbef99_2 + - gcc_linux-64 13.2.0 h112eaf3_2 + - gxx_impl_linux-64 13.2.0.* + - sysroot_linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.2.0-hc53e3bf_2.conda + hash: + md5: 7b8c35963707337e5f363c36f9bb5088 + sha256: a973936c18a9f44f9b04292ed3555dbc27a6802186fa653efb0aecdaac455708 + build: hc53e3bf_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 28665 + timestamp: 1694604366542 +- platform: linux-64 + name: h5netcdf + version: 1.3.0 + category: main + manager: conda + dependencies: + - h5py + - packaging + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 6890388078d9a3a20ef793c5ffb169ed + sha256: 0195b109e6b18d7efa06124d268fd5dd426f67e2feaee50a358211ba4a4b219b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 42170 + timestamp: 1699412919171 + purls: + - pkg:pypi/h5netcdf +- platform: win-64 + name: h5netcdf + version: 1.3.0 + category: main + manager: conda + dependencies: + - h5py + - packaging + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 6890388078d9a3a20ef793c5ffb169ed + sha256: 0195b109e6b18d7efa06124d268fd5dd426f67e2feaee50a358211ba4a4b219b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 42170 + timestamp: 1699412919171 + purls: + - pkg:pypi/h5netcdf +- platform: linux-64 + name: h5py + version: 3.10.0 + category: main + manager: conda + dependencies: + - cached-property + - hdf5 >=1.14.3,<1.14.4.0a0 + - libgcc-ng >=12 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.10.0-nompi_py310h65828d5_101.conda + hash: + md5: 44c185c5b133ad6d1d449839407aa863 + sha256: 42ca5cdf60ee7c1a246ecce0d42a180c03a3d6401dae9e484dbc55b93cd96429 + build: nompi_py310h65828d5_101 + arch: x86_64 + subdir: linux-64 + build_number: 101 + license: BSD-3-Clause + license_family: BSD + size: 1175397 + timestamp: 1702471777753 +- platform: win-64 + name: h5py + version: 3.10.0 + category: main + manager: conda + dependencies: + - cached-property + - hdf5 >=1.14.3,<1.14.4.0a0 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/h5py-3.10.0-nompi_py310hde4a0ea_101.conda + hash: + md5: 6a153fa7d77ce229694115f40a9b3ef0 + sha256: 25bc123bd376058b197349dabc10c2c9817f24f2705e65ee07d89df286f3f90e + build: nompi_py310hde4a0ea_101 + arch: x86_64 + subdir: win-64 + build_number: 101 + license: BSD-3-Clause + license_family: BSD + size: 882241 + timestamp: 1702472206006 +- platform: linux-64 + name: harfbuzz + version: 8.3.0 + category: main + manager: conda + dependencies: + - cairo >=1.18.0,<2.0a0 + - freetype >=2.12.1,<3.0a0 + - graphite2 + - icu >=73.2,<74.0a0 + - libgcc-ng >=12 + - libglib >=2.78.1,<3.0a0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda + hash: + md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 + sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed + build: h3d44ed6_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 1547473 + timestamp: 1699925311766 +- platform: linux-64 + name: hdf5 + version: 1.14.3 + category: main + manager: conda + dependencies: + - libaec >=1.1.2,<2.0a0 + - libcurl >=8.4.0,<9.0a0 + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_h4f84152_100.conda + hash: + md5: d471a5c3abc984b662d9bae3bb7fd8a5 + sha256: b814f8f9598cc6e50127533ec256725183ba69db5fd8cf5443223627f19e3e59 + build: nompi_h4f84152_100 + arch: x86_64 + subdir: linux-64 + build_number: 100 + license: LicenseRef-HDF5 + license_family: BSD + size: 3892189 + timestamp: 1701791599022 +- platform: win-64 + name: hdf5 + version: 1.14.3 + category: main + manager: conda + dependencies: + - libaec >=1.1.2,<2.0a0 + - libcurl >=8.4.0,<9.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.3-nompi_h73e8ff5_100.conda + hash: + md5: 1e91ce0f3a914b0dab762539c0df4ff1 + sha256: 89bbb2c878e1b6c6073ef5f1f25eac97ed48393541a4a44a7d182da5ede3dc98 + build: nompi_h73e8ff5_100 + arch: x86_64 + subdir: win-64 + build_number: 100 + license: LicenseRef-HDF5 + license_family: BSD + size: 2045774 + timestamp: 1701791365837 +- platform: linux-64 + name: icu + version: '73.2' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 12089150 + timestamp: 1692900650789 +- platform: win-64 + name: icu + version: '73.2' + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/icu-73.2-h63175ca_0.conda + hash: + md5: 0f47d9e3192d9e09ae300da0d28e0f56 + sha256: 423aaa2b69d713520712f55c7c71994b7e6f967824bb39b59ad968e7b209ce8c + build: h63175ca_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 13422193 + timestamp: 1692901469029 +- platform: linux-64 + name: imagecodecs + version: 2024.1.1 + category: main + manager: conda + dependencies: + - blosc >=1.21.5,<2.0a0 + - brunsli >=0.1,<1.0a0 + - bzip2 >=1.0.8,<2.0a0 + - c-blosc2 >=2.12.0,<3.0a0 + - charls >=2.4.2,<2.5.0a0 + - giflib >=5.2.1,<5.3.0a0 + - jxrlib >=1.1,<1.2.0a0 + - lcms2 >=2.16,<3.0a0 + - lerc >=4.0.0,<5.0a0 + - libaec >=1.1.2,<2.0a0 + - libavif16 >=1.0.1,<2.0a0 + - libbrotlicommon >=1.1.0,<1.2.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libdeflate >=1.19,<1.20.0a0 + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libstdcxx-ng >=12 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - libzopfli >=1.0.3,<1.1.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - numpy >=1.22.4,<2.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - snappy >=1.1.10,<2.0a0 + - xz >=5.2.6,<6.0a0 + - zfp >=1.0.1,<2.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2024.1.1-py310h496a806_0.conda + hash: + md5: f5bfee32458bc1c9b2512a3cabfcedaa + sha256: fff8e754c30377a85505359142ee43a06881ea0717c92b96bc400961811243ce + build: py310h496a806_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 1972991 + timestamp: 1704020343046 + purls: + - pkg:pypi/imagecodecs +- platform: win-64 + name: imagecodecs + version: 2024.1.1 + category: main + manager: conda + dependencies: + - blosc >=1.21.5,<2.0a0 + - bzip2 >=1.0.8,<2.0a0 + - c-blosc2 >=2.12.0,<3.0a0 + - charls >=2.4.2,<2.5.0a0 + - giflib >=5.2.1,<5.3.0a0 + - jxrlib >=1.1,<1.2.0a0 + - lcms2 >=2.16,<3.0a0 + - lerc >=4.0.0,<5.0a0 + - libaec >=1.1.2,<2.0a0 + - libavif >=1.0.1,<1.0.2.0a0 + - libbrotlicommon >=1.1.0,<1.2.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libdeflate >=1.19,<1.20.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - libzopfli >=1.0.3,<1.1.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - numpy >=1.22.4,<2.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - snappy >=1.1.10,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + - zfp >=1.0.1,<2.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/imagecodecs-2024.1.1-py310h0dcf169_0.conda + hash: + md5: 1995e379376c6ded7dc2dcdab409a604 + sha256: f205e78095ae664de5bf43aa8758003ba49e0df743733c32d8af03b43b6024f7 + build: py310h0dcf169_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 1583542 + timestamp: 1704020807464 + purls: + - pkg:pypi/imagecodecs +- platform: linux-64 + name: imageio + version: 2.33.1 + category: main + manager: conda + dependencies: + - numpy + - pillow >=8.3.2 + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda + hash: + md5: 1c34d58ac469a34e7e96832861368bce + sha256: 0565f3666de4d02a83c5c8e14b7d878c382720f84318d6ce1ff83b66603c01d7 + build: pyh8c1a49c_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 291146 + timestamp: 1702571907152 + purls: + - pkg:pypi/imageio +- platform: win-64 + name: imageio + version: 2.33.1 + category: main + manager: conda + dependencies: + - numpy + - pillow >=8.3.2 + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda + hash: + md5: 1c34d58ac469a34e7e96832861368bce + sha256: 0565f3666de4d02a83c5c8e14b7d878c382720f84318d6ce1ff83b66603c01d7 + build: pyh8c1a49c_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 291146 + timestamp: 1702571907152 + purls: + - pkg:pypi/imageio +- platform: linux-64 + name: importlib-metadata + version: 7.0.1 + category: main + manager: pypi + requires_dist: + - zipp >=0.5 + - typing-extensions >=3.6.4 ; python_version < '3.8' + - sphinx >=3.5 ; extra == 'docs' + - sphinx <7.2.5 ; extra == 'docs' + - jaraco.packaging >=9.3 ; extra == 'docs' + - rst.linker >=1.9 ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-lint ; extra == 'docs' + - jaraco.tidelift >=1.4 ; extra == 'docs' + - ipython ; extra == 'perf' + - pytest >=6 ; extra == 'testing' + - pytest-checkdocs >=2.4 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-enabler >=2.2 ; extra == 'testing' + - pytest-ruff ; extra == 'testing' + - packaging ; extra == 'testing' + - pyfakefs ; extra == 'testing' + - flufl.flake8 ; extra == 'testing' + - pytest-perf >=0.9.2 ; extra == 'testing' + - pytest-black >=0.3.7 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - importlib-resources >=1.3 ; python_version < '3.9' and extra == 'testing' + requires_python: '>=3.8' + url: https://files.pythonhosted.org/packages/c0/8b/d8427f023c081a8303e6ac7209c16e6878f2765d5b59667f3903fbcfd365/importlib_metadata-7.0.1-py3-none-any.whl#sha256=4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e + hash: + md5: null + sha256: 4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e +- platform: win-64 + name: importlib-metadata + version: 7.0.1 + category: main + manager: pypi + requires_dist: + - zipp >=0.5 + - typing-extensions >=3.6.4 ; python_version < '3.8' + - sphinx >=3.5 ; extra == 'docs' + - sphinx <7.2.5 ; extra == 'docs' + - jaraco.packaging >=9.3 ; extra == 'docs' + - rst.linker >=1.9 ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-lint ; extra == 'docs' + - jaraco.tidelift >=1.4 ; extra == 'docs' + - ipython ; extra == 'perf' + - pytest >=6 ; extra == 'testing' + - pytest-checkdocs >=2.4 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-enabler >=2.2 ; extra == 'testing' + - pytest-ruff ; extra == 'testing' + - packaging ; extra == 'testing' + - pyfakefs ; extra == 'testing' + - flufl.flake8 ; extra == 'testing' + - pytest-perf >=0.9.2 ; extra == 'testing' + - pytest-black >=0.3.7 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - importlib-resources >=1.3 ; python_version < '3.9' and extra == 'testing' + requires_python: '>=3.8' + url: https://files.pythonhosted.org/packages/c0/8b/d8427f023c081a8303e6ac7209c16e6878f2765d5b59667f3903fbcfd365/importlib_metadata-7.0.1-py3-none-any.whl#sha256=4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e + hash: + md5: null + sha256: 4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e +- platform: linux-64 + name: importlib_resources + version: 6.1.1 + category: main + manager: conda + dependencies: + - python >=3.8 + - zipp >=3.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + hash: + md5: 3d5fa25cf42f3f32a12b2d874ace8574 + sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - importlib-resources >=6.1.1,<6.1.2.0a0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 29951 + timestamp: 1699364734111 + purls: + - pkg:pypi/importlib-resources +- platform: win-64 + name: importlib_resources + version: 6.1.1 + category: main + manager: conda + dependencies: + - python >=3.8 + - zipp >=3.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + hash: + md5: 3d5fa25cf42f3f32a12b2d874ace8574 + sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - importlib-resources >=6.1.1,<6.1.2.0a0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 29951 + timestamp: 1699364734111 + purls: + - pkg:pypi/importlib-resources +- platform: linux-64 + name: iniconfig + version: 2.0.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 11101 + timestamp: 1673103208955 + purls: + - pkg:pypi/iniconfig +- platform: win-64 + name: iniconfig + version: 2.0.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 11101 + timestamp: 1673103208955 + purls: + - pkg:pypi/iniconfig +- platform: win-64 + name: intel-openmp + version: 2023.2.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2023.2.0-h57928b3_50497.conda + hash: + md5: a401f3cae152deb75bbed766a90a6312 + sha256: dd9fded25ebe5c66af30ac6e3685146efdc2d7787035f01bfb546b347f138f6f + build: h57928b3_50497 + arch: x86_64 + subdir: win-64 + build_number: 50497 + license: LicenseRef-ProprietaryIntel + license_family: Proprietary + size: 2523079 + timestamp: 1698351323119 +- platform: linux-64 + name: ipython + version: 8.20.0 + category: main + manager: conda + dependencies: + - __unix + - decorator + - exceptiongroup + - jedi >=0.16 + - matplotlib-inline + - pexpect >4.3 + - pickleshare + - prompt-toolkit >=3.0.41,<3.1.0 + - pygments >=2.4.0 + - python >=3.10 + - stack_data + - traitlets >=5 + - typing_extensions + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.20.0-pyh707e725_0.conda + hash: + md5: c2d2d7453560c80a2138c354610c08ba + sha256: 94fddc9f2f344d70aadabcccc595d0f32d87acaf4f2bce264058d4bb67c1c27f + build: pyh707e725_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 591018 + timestamp: 1704719019020 + purls: + - pkg:pypi/ipython +- platform: win-64 + name: ipython + version: 8.20.0 + category: main + manager: conda + dependencies: + - __win + - colorama + - decorator + - exceptiongroup + - jedi >=0.16 + - matplotlib-inline + - pickleshare + - prompt-toolkit >=3.0.41,<3.1.0 + - pygments >=2.4.0 + - python >=3.10 + - stack_data + - traitlets >=5 + - typing_extensions + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.20.0-pyh7428d3b_0.conda + hash: + md5: 18d1a19c6410fbc04f4bc69bad3a5f07 + sha256: 6d2c38db3b0cbe336f6abed97fcb27949d8334c1dd25134d60ced83896d6ccba + build: pyh7428d3b_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 590823 + timestamp: 1704719354431 + purls: + - pkg:pypi/ipython +- platform: linux-64 + name: jedi + version: 0.19.1 + category: main + manager: conda + dependencies: + - parso >=0.8.3,<0.9.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 841312 + timestamp: 1696326218364 + purls: + - pkg:pypi/jedi +- platform: win-64 + name: jedi + version: 0.19.1 + category: main + manager: conda + dependencies: + - parso >=0.8.3,<0.9.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 841312 + timestamp: 1696326218364 + purls: + - pkg:pypi/jedi +- platform: linux-64 + name: jsonschema + version: 4.20.0 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.8 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.20.0-pyhd8ed1ab_0.conda + hash: + md5: 1116d79def5268414fb0917520b2bbf1 + sha256: 77aae609097d06deedb8ef8407a44b23d5fef95962ba6fe1c959ac7bd6195296 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 71908 + timestamp: 1700160056678 +- platform: win-64 + name: jsonschema + version: 4.21.0 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.8 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda + hash: + md5: 63dd555524e29934d1d3c9f7001ec4bd + sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + noarch: python + size: 72258 + timestamp: 1705441839612 +- platform: linux-64 + name: jsonschema-specifications + version: 2023.12.1 + category: main + manager: conda + dependencies: + - importlib_resources >=1.4.0 + - python >=3.8 + - referencing >=0.31.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda + hash: + md5: a0e4efb5f35786a05af4809a2fb1f855 + sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 16431 + timestamp: 1703778502971 + purls: + - pkg:pypi/jsonschema-specifications +- platform: win-64 + name: jsonschema-specifications + version: 2023.12.1 + category: main + manager: conda + dependencies: + - importlib_resources >=1.4.0 + - python >=3.8 + - referencing >=0.31.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda + hash: + md5: a0e4efb5f35786a05af4809a2fb1f855 + sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 16431 + timestamp: 1703778502971 + purls: + - pkg:pypi/jsonschema-specifications +- platform: linux-64 + name: jupyter_core + version: 5.7.1 + category: main + manager: conda + dependencies: + - platformdirs >=2.5 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.7.1-py310hff52083_0.conda + hash: + md5: 8bfa2e65bafa37a5c3eaf3caa03b2886 + sha256: cf1e7d31ffe6d976a0ad7a7264d90e644796e85370fa7cb9bd5211cfa82fb66d + build: py310hff52083_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 79924 + timestamp: 1704727194527 +- platform: win-64 + name: jupyter_core + version: 5.7.1 + category: main + manager: conda + dependencies: + - platformdirs >=2.5 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - pywin32 >=300 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/win-64/jupyter_core-5.7.1-py310h5588dad_0.conda + hash: + md5: bc359847494188de74ee6eacc2433b42 + sha256: 0a10c3cf6b5ba3137a2e47787cec682d65d0cfaec9465cc243c0eac90500bbc6 + build: py310h5588dad_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 97269 + timestamp: 1704727631050 +- platform: linux-64 + name: jxrlib + version: '1.1' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda + hash: + md5: 5aeabe88534ea4169d4c49998f293d6c + sha256: 2057ca87b313bde5b74b93b0e696f8faab69acd4cb0edebb78469f3f388040c0 + build: hd590300_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 239104 + timestamp: 1703333860145 +- platform: win-64 + name: jxrlib + version: '1.1' + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda + hash: + md5: a9dff8432c11dfa980346e934c29ca3f + sha256: a9ac265bcf65fce57cfb6512a1b072d5489445d14aa1b60c9bdf73370cf261b2 + build: hcfcfb64_3 + arch: x86_64 + subdir: win-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 355340 + timestamp: 1703334132631 +- platform: linux-64 + name: kernel-headers_linux-64 + version: 2.6.32 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-2.6.32-he073ed8_16.conda + hash: + md5: 7ca122655873935e02c91279c5b03c8c + sha256: aaa8aa6dc776d734a6702032588ff3c496721da905366d91162e3654c082aef0 + build: he073ed8_16 + arch: x86_64 + subdir: linux-64 + build_number: 16 + constrains: + - sysroot_linux-64 ==2.12 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + license_family: GPL + noarch: generic + size: 709007 + timestamp: 1689214970644 +- platform: linux-64 + name: keyutils + version: 1.6.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=10.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + build: h166bdaf_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 117831 + timestamp: 1646151697040 +- platform: linux-64 + name: kiwisolver + version: 1.4.5 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.5-py310hd41b1e2_1.conda + hash: + md5: b8d67603d43b23ce7e988a5d81a7ab79 + sha256: bb51906639bced3de1d4d7740ac284cdaa89e2f22e0b1ec796378b090b0648ba + build: py310hd41b1e2_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 73123 + timestamp: 1695380074542 + purls: + - pkg:pypi/kiwisolver +- platform: win-64 + name: kiwisolver + version: 1.4.5 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.5-py310h232114e_1.conda + hash: + md5: a340ed8a9c513e2782cb7feb3cfe665d + sha256: 8969469887a0b72f732ec9250fd25982499270bda473a5db4c04ee252db96d89 + build: py310h232114e_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 55587 + timestamp: 1695380469062 + purls: + - pkg:pypi/kiwisolver +- platform: linux-64 + name: krb5 + version: 1.21.2 + category: main + manager: conda + dependencies: + - keyutils >=1.6.1,<2.0a0 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.1.2,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda + hash: + md5: cd95826dbd331ed1be26bdf401432844 + sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 + build: h659d440_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 1371181 + timestamp: 1692097755782 +- platform: win-64 + name: krb5 + version: 1.21.2 + category: main + manager: conda + dependencies: + - openssl >=3.1.2,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.2-heb0366b_0.conda + hash: + md5: 6e8b0f22b4eef3b3cb3849bb4c3d47f9 + sha256: 6002adff9e3dcfc9732b861730cb9e33d45fd76b2035b2cdb4e6daacb8262c0b + build: heb0366b_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 710894 + timestamp: 1692098129546 +- platform: linux-64 + name: lame + version: '3.100' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2 + hash: + md5: a8832b479f93521a9e7b5b743803be51 + sha256: aad2a703b9d7b038c0f745b853c6bb5f122988fe1a7a096e0e606d9cbec4eaab + build: h166bdaf_1003 + arch: x86_64 + subdir: linux-64 + build_number: 1003 + license: LGPL-2.0-only + license_family: LGPL + size: 508258 + timestamp: 1664996250081 +- platform: linux-64 + name: lazy_loader + version: '0.3' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.3-pyhd8ed1ab_0.conda + hash: + md5: 69ea1d0fa7ab33b48c88394ad1dead65 + sha256: fa32bafbf7f9238a9cb8f0aa1fb17d2fdcefa607c217b86c38c3b670c58d1ac6 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 14298 + timestamp: 1692295540050 + purls: + - pkg:pypi/lazy-loader +- platform: win-64 + name: lazy_loader + version: '0.3' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.3-pyhd8ed1ab_0.conda + hash: + md5: 69ea1d0fa7ab33b48c88394ad1dead65 + sha256: fa32bafbf7f9238a9cb8f0aa1fb17d2fdcefa607c217b86c38c3b670c58d1ac6 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 14298 + timestamp: 1692295540050 + purls: + - pkg:pypi/lazy-loader +- platform: linux-64 + name: lcms2 + version: '2.16' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + hash: + md5: 51bb7010fc86f70eee639b4bb7a894f5 + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + build: hb7c19ff_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 245247 + timestamp: 1701647787198 +- platform: win-64 + name: lcms2 + version: '2.16' + category: main + manager: conda + dependencies: + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.16-h67d730c_0.conda + hash: + md5: d3592435917b62a8becff3a60db674f6 + sha256: f9fd9e80e46358a57d9bb97b1e37a03da4022143b019aa3c4476d8a7795de290 + build: h67d730c_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 507632 + timestamp: 1701648249706 +- platform: linux-64 + name: ld_impl_linux-64 + version: '2.40' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + hash: + md5: 7aca3059a1729aa76c597603f10b0dd3 + sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd + build: h41732ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - binutils_impl_linux-64 2.40 + license: GPL-3.0-only + license_family: GPL + size: 704696 + timestamp: 1674833944779 +- platform: linux-64 + name: lerc + version: 4.0.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + hash: + md5: 76bbff344f0134279f225174e9064c8f + sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 + build: h27087fc_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 281798 + timestamp: 1657977462600 +- platform: win-64 + name: lerc + version: 4.0.0 + category: main + manager: conda + dependencies: + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30037 + url: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2 + hash: + md5: 1900cb3cab5055833cfddb0ba233b074 + sha256: f4f39d7f6a2f9b407f8fb567a6c25755270421731d70f0ff331f5de4fa367488 + build: h63175ca_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 194365 + timestamp: 1657977692274 +- platform: linux-64 + name: libaec + version: 1.1.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.2-h59595ed_1.conda + hash: + md5: 127b0be54c1c90760d7fe02ea7a56426 + sha256: fdde15e74dc099ab1083823ec0f615958e53d9a8fae10405af977de251668bea + build: h59595ed_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-2-Clause + license_family: BSD + size: 35228 + timestamp: 1696474021700 +- platform: win-64 + name: libaec + version: 1.1.2 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.2-h63175ca_1.conda + hash: + md5: 0b252d2bf460364bccb1523bcdbe4af6 + sha256: 731dc77bce7d6425e2113b902023fba146e827cfe301bac565f92cc4e749588a + build: h63175ca_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-2-Clause + license_family: BSD + size: 33554 + timestamp: 1696474526588 +- platform: win-64 + name: libavif + version: 1.0.1 + category: main + manager: conda + dependencies: + - aom >=3.7.0,<3.8.0a0 + - dav1d >=1.2.1,<1.2.2.0a0 + - rav1e >=0.6.6,<1.0a0 + - svt-av1 >=1.7.0,<1.7.1.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libavif-1.0.1-h7a9aacb_3.conda + hash: + md5: 105425ab3c95efc316bb3277bbc4a75f + sha256: 7a02658e292c40e1d99aa9b587a02cb5807cce7a784bd17f196a6ce74e24ced7 + build: h7a9aacb_3 + arch: x86_64 + subdir: win-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 104651 + timestamp: 1699878685050 +- platform: linux-64 + name: libavif16 + version: 1.0.3 + category: main + manager: conda + dependencies: + - aom >=3.7.1,<3.8.0a0 + - dav1d >=1.2.1,<1.2.2.0a0 + - libgcc-ng >=12 + - rav1e >=0.6.6,<1.0a0 + - svt-av1 >=1.8.0,<1.8.1.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.0.3-hef5bec9_1.conda + hash: + md5: 11a4e0cd0874e77396e781154a8d672f + sha256: b9cf76dcc76e44ffdc539685bd14be599f0c614e4a7d97cdf7cdc6c02a8d646b + build: hef5bec9_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-2-Clause + license_family: BSD + size: 95981 + timestamp: 1702383764199 +- platform: linux-64 + name: libblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libopenblas >=0.3.25,<0.3.26.0a0 + - libopenblas >=0.3.25,<1.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-20_linux64_openblas.conda + hash: + md5: 2b7bb4f7562c8cf334fc2e20c2d28abc + sha256: 8a0ee1de693a9b3da4a11b95ec81b40dd434bd01fa1f5f38f8268cd2146bf8f0 + build: 20_linux64_openblas + arch: x86_64 + subdir: linux-64 + build_number: 20 + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - libcblas 3.9.0 20_linux64_openblas + - blas * openblas + - liblapack 3.9.0 20_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14433 + timestamp: 1700568383457 +- platform: win-64 + name: libblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - mkl 2023.2.0 h6a75c08_50497 + url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-20_win64_mkl.conda + hash: + md5: 6cad6cd2fbdeef4d651b8f752a4da960 + sha256: 34becfe991510be7b9ee05b4ae466c5a26a72af275c3071c1ca7e2308d3f7e64 + build: 20_win64_mkl + arch: x86_64 + subdir: win-64 + build_number: 20 + constrains: + - liblapacke 3.9.0 20_win64_mkl + - blas * mkl + - liblapack 3.9.0 20_win64_mkl + - libcblas 3.9.0 20_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 4981090 + timestamp: 1700569135332 +- platform: linux-64 + name: libbrotlicommon + version: 1.1.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hd590300_1.conda + hash: + md5: aec6c91c7371c26392a06708a73c70e5 + sha256: 40f29d1fab92c847b083739af86ad2f36d8154008cf99b64194e4705a1725d78 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 69403 + timestamp: 1695990007212 +- platform: win-64 + name: libbrotlicommon + version: 1.1.0 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.1.0-hcfcfb64_1.conda + hash: + md5: f77f319fb82980166569e1280d5b2864 + sha256: f75fed29b0cc503d1b149a4945eaa32df56e19da5e2933de29e8f03947203709 + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 70598 + timestamp: 1695990405143 +- platform: linux-64 + name: libbrotlidec + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 hd590300_1 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hd590300_1.conda + hash: + md5: f07002e225d7a60a694d42a7bf5ff53f + sha256: 86fc861246fbe5ad85c1b6b3882aaffc89590a48b42d794d3d5c8e6d99e5f926 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 32775 + timestamp: 1695990022788 +- platform: win-64 + name: libbrotlidec + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 hcfcfb64_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.1.0-hcfcfb64_1.conda + hash: + md5: 19ce3e1dacc7912b3d6ff40690ba9ae0 + sha256: 1b352ee05931ea24c11cd4a994d673890fd1cc690c21e023e736bdaac2632e93 + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 32788 + timestamp: 1695990443165 +- platform: linux-64 + name: libbrotlienc + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 hd590300_1 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hd590300_1.conda + hash: + md5: 5fc11c6020d421960607d821310fcd4d + sha256: f751b8b1c4754a2a8dfdc3b4040fa7818f35bbf6b10e905a47d3a194b746b071 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 282523 + timestamp: 1695990038302 +- platform: win-64 + name: libbrotlienc + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 hcfcfb64_1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.1.0-hcfcfb64_1.conda + hash: + md5: 71e890a0b361fd58743a13f77e1506b7 + sha256: eae6b76154e594c6d211160c6d1aeed848672618152a562e0eabdfa641d34aca + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 246515 + timestamp: 1695990479484 +- platform: linux-64 + name: libcap + version: '2.69' + category: main + manager: conda + dependencies: + - attr >=2.5.1,<2.6.0a0 + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libcap-2.69-h0f662aa_0.conda + hash: + md5: 25cb5999faa414e5ccb2c1388f62d3d5 + sha256: 942f9564b4228609f017b6617425d29a74c43b8a030e12239fa4458e5cb6323c + build: h0f662aa_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 100582 + timestamp: 1684162447012 +- platform: linux-64 + name: libcblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 20_linux64_openblas + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda + hash: + md5: 36d486d72ab64ffea932329a1d3729a3 + sha256: 0e34fb0f82262f02fcb279ab4a1db8d50875dc98e3019452f8f387e6bf3c0247 + build: 20_linux64_openblas + arch: x86_64 + subdir: linux-64 + build_number: 20 + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - blas * openblas + - liblapack 3.9.0 20_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14383 + timestamp: 1700568410580 +- platform: win-64 + name: libcblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 20_win64_mkl + url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-20_win64_mkl.conda + hash: + md5: e6d36cfcb2f2dff0f659d2aa0813eb2d + sha256: e526023ed8e7f6fde43698cd326dd16c8448f29414bab8a9594b33deb57a5347 + build: 20_win64_mkl + arch: x86_64 + subdir: win-64 + build_number: 20 + constrains: + - blas * mkl + - liblapack 3.9.0 20_win64_mkl + - liblapacke 3.9.0 20_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 4980937 + timestamp: 1700569208640 +- platform: linux-64 + name: libclang + version: 15.0.7 + category: main + manager: conda + dependencies: + - libclang13 15.0.7 default_ha2b6cf4_4 + - libgcc-ng >=12 + - libllvm15 >=15.0.7,<15.1.0a0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-15.0.7-default_hb11cfb5_4.conda + hash: + md5: c90f4cbb57839c98fef8f830e4b9972f + sha256: 0b80441f222a91074d0e5edb0fbc3b1ce16ca2cdf6ab899721afdcc3a3ff6302 + build: default_hb11cfb5_4 + arch: x86_64 + subdir: linux-64 + build_number: 4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 133384 + timestamp: 1701412265788 +- platform: win-64 + name: libclang + version: 15.0.7 + category: main + manager: conda + dependencies: + - libclang13 15.0.7 default_h85b4d89_4 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/libclang-15.0.7-default_hde6756a_4.conda + hash: + md5: a621ea4ac3f826d02441369e73e53800 + sha256: 1083e53f51b35c7a6769fafa2e7ab5bb85f953eb288eb4a62cddd8200db7c46d + build: default_hde6756a_4 + arch: x86_64 + subdir: win-64 + build_number: 4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 148080 + timestamp: 1701415503085 +- platform: linux-64 + name: libclang13 + version: 15.0.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libllvm15 >=15.0.7,<15.1.0a0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-15.0.7-default_ha2b6cf4_4.conda + hash: + md5: 898e0dd993afbed0d871b60c2eb33b83 + sha256: e1d34d415160b69a401dc0662bf1b5378655193ed1364bf7dd14f055e76e4b60 + build: default_ha2b6cf4_4 + arch: x86_64 + subdir: linux-64 + build_number: 4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 9581845 + timestamp: 1701412208888 +- platform: win-64 + name: libclang13 + version: 15.0.7 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/libclang13-15.0.7-default_h85b4d89_4.conda + hash: + md5: c6b0181860717a08469a324c4180ff2d + sha256: 37917f88ea5beb660a86b2325b727a03db125e25182d8186921a7cc53966df9d + build: default_h85b4d89_4 + arch: x86_64 + subdir: win-64 + build_number: 4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21902269 + timestamp: 1701415323912 +- platform: linux-64 + name: libcups + version: 2.3.3 + category: main + manager: conda + dependencies: + - krb5 >=1.21.1,<1.22.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda + hash: + md5: d4529f4dff3057982a7617c7ac58fde3 + sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4 + build: h4637d8d_4 + arch: x86_64 + subdir: linux-64 + build_number: 4 + license: Apache-2.0 + license_family: Apache + size: 4519402 + timestamp: 1689195353551 +- platform: linux-64 + name: libcurl + version: 8.5.0 + category: main + manager: conda + dependencies: + - krb5 >=1.21.2,<1.22.0a0 + - libgcc-ng >=12 + - libnghttp2 >=1.58.0,<2.0a0 + - libssh2 >=1.11.0,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.5.0-hca28451_0.conda + hash: + md5: 7144d5a828e2cae218e0e3c98d8a0aeb + sha256: 00a6bea5ff90ca58eeb15ebc98e08ffb88bddaff27396bb62640064f59d29cf0 + build: hca28451_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: curl + license_family: MIT + size: 389164 + timestamp: 1701860147844 +- platform: win-64 + name: libcurl + version: 8.5.0 + category: main + manager: conda + dependencies: + - krb5 >=1.21.2,<1.22.0a0 + - libssh2 >=1.11.0,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.5.0-hd5e4a3a_0.conda + hash: + md5: c95eb3d60266dd47b8eb864e10d6bcf3 + sha256: 8c933416c61445ab51515a5ca8c32ddc4f83180d5dc43684e4a80915022ffe1f + build: hd5e4a3a_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: curl + license_family: MIT + size: 323619 + timestamp: 1701860670113 +- platform: linux-64 + name: libdeflate + version: '1.19' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.19-hd590300_0.conda + hash: + md5: 1635570038840ee3f9c71d22aa5b8b6d + sha256: 985ad27aa0ba7aad82afa88a8ede6a1aacb0aaca950d710f15d85360451e72fd + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 67080 + timestamp: 1694922285678 +- platform: win-64 + name: libdeflate + version: '1.19' + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.19-hcfcfb64_0.conda + hash: + md5: 002b1b723b44dbd286b9e3708762433c + sha256: e2886a84eaa0fbeca1d1d810270f234431d190402b4a79acf756ca2d16000354 + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 153203 + timestamp: 1694922596415 +- platform: linux-64 + name: libedit + version: 3.1.20191231 + category: main + manager: conda + dependencies: + - libgcc-ng >=7.5.0 + - ncurses >=6.2,<7.0.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + build: he28a2e2_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 123878 + timestamp: 1597616541093 +- platform: linux-64 + name: libev + version: '4.33' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + hash: + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + build: hd590300_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 112766 + timestamp: 1702146165126 +- platform: linux-64 + name: libevent + version: 2.1.12 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - openssl >=3.1.1,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda + hash: + md5: a1cfcc585f0c42bf8d5546bb1dfb668d + sha256: 2e14399d81fb348e9d231a82ca4d816bf855206923759b69ad006ba482764131 + build: hf998b51_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 427426 + timestamp: 1685725977222 +- platform: linux-64 + name: libexpat + version: 2.5.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + hash: + md5: 6305a3dd2752c76335295da4e581f2fd + sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + build: hcb278e6_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 77980 + timestamp: 1680190528313 +- platform: linux-64 + name: libffi + version: 3.4.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.4.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + build: h7f98852_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + license: MIT + license_family: MIT + size: 58292 + timestamp: 1636488182923 +- platform: win-64 + name: libffi + version: 3.4.2 + category: main + manager: conda + dependencies: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + hash: + md5: 2c96d1b6915b408893f9472569dee135 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + build: h8ffe710_5 + arch: x86_64 + subdir: win-64 + build_number: 5 + license: MIT + license_family: MIT + size: 42063 + timestamp: 1636489106777 +- platform: linux-64 + name: libflac + version: 1.4.3 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - libgcc-ng >=12 + - libogg 1.3.* + - libogg >=1.3.4,<1.4.0a0 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libflac-1.4.3-h59595ed_0.conda + hash: + md5: ee48bf17cc83a00f59ca1494d5646869 + sha256: 65908b75fa7003167b8a8f0001e11e58ed5b1ef5e98b96ab2ba66d7c1b822c7d + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 394383 + timestamp: 1687765514062 +- platform: linux-64 + name: libgcc-devel_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-ha9c7c90_103.conda + hash: + md5: db8cd1a871a07404d94f7dcc78c21a61 + sha256: 656ec5ed716e5c7b6cca9a9406098dcd9a89b0193310930da391189c8eb44548 + build: ha9c7c90_103 + arch: x86_64 + subdir: linux-64 + build_number: 103 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + noarch: generic + size: 2578287 + timestamp: 1699753507279 +- platform: linux-64 + name: libgcc-ng + version: 13.2.0 + category: main + manager: conda + dependencies: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_3.conda + hash: + md5: 23fdf1fef05baeb7eadc2aed5fb0011f + sha256: 5e88f658e07a30ab41b154b42c59f079b168acfa9551a75bdc972099453f4105 + build: h807b86a_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + constrains: + - libgomp 13.2.0 h807b86a_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 773629 + timestamp: 1699753612541 +- platform: linux-64 + name: libgcrypt + version: 1.10.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libgpg-error >=1.47,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcrypt-1.10.3-hd590300_0.conda + hash: + md5: 32d16ad533c59bb0a3c5ffaf16110829 + sha256: d1bd47faa29fec7288c7b212198432b07f890d3d6f646078da93b059c2e9daff + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later AND GPL-2.0-or-later + license_family: GPL + size: 634887 + timestamp: 1701383493365 +- platform: linux-64 + name: libgfortran-ng + version: 13.2.0 + category: main + manager: conda + dependencies: + - libgfortran5 13.2.0 ha4646dd_3 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_3.conda + hash: + md5: 73031c79546ad06f1fe62e57fdd021bc + sha256: 5b918950b84605b6865de438757f507b1eff73c96fd562f7022c80028b088c14 + build: h69a702a_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 23837 + timestamp: 1699753845201 +- platform: linux-64 + name: libgfortran5 + version: 13.2.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_3.conda + hash: + md5: c714d905cdfa0e70200f68b80cc04764 + sha256: 0084a1d29a4f8ee3b8edad80eb6c42e5f0480f054f28cf713fb314bebb347a50 + build: ha4646dd_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + constrains: + - libgfortran-ng 13.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1436929 + timestamp: 1699753630186 +- platform: linux-64 + name: libglib + version: 2.78.3 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libiconv >=1.17,<2.0a0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - pcre2 >=10.42,<10.43.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.78.3-h783c2da_0.conda + hash: + md5: 9bd06b12bbfa6fd1740fd23af4b0f0c7 + sha256: b1b594294a0fe4c9a51596ef027efed9268d60827e8ae61fb7545c521a631e33 + build: h783c2da_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - glib 2.78.3 *_0 + license: LGPL-2.1-or-later + size: 2696351 + timestamp: 1702003069863 +- platform: win-64 + name: libglib + version: 2.78.3 + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - libffi >=3.4,<4.0a0 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - pcre2 >=10.42,<10.43.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libglib-2.78.3-h16e383f_0.conda + hash: + md5: c295badd19494ac8476b36e9e9e47ace + sha256: 33527a11321609064c649682e709ebede86e24f1264dac1d018aaa00fb3b90bf + build: h16e383f_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - glib 2.78.3 *_0 + license: LGPL-2.1-or-later + size: 2620918 + timestamp: 1702003409384 +- platform: linux-64 + name: libgomp + version: 13.2.0 + category: main + manager: conda + dependencies: + - _libgcc_mutex 0.1 conda_forge + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_3.conda + hash: + md5: 7124cbb46b13d395bdde68f2d215c989 + sha256: 6ebedee39b6bbbc969715d0d7fa4b381cce67e1139862604ffa393f821c08e81 + build: h807b86a_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 421834 + timestamp: 1699753531479 +- platform: linux-64 + name: libgpg-error + version: '1.47' + category: main + manager: conda + dependencies: + - gettext >=0.21.1,<1.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libgpg-error-1.47-h71f35ed_0.conda + hash: + md5: c2097d0b46367996f09b4e8e4920384a + sha256: 0306b3c2d65863048983a50bd8b86f6f26e457ef55d1da745a5796af25093f5a + build: h71f35ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: GPL-2.0-only + license_family: GPL + size: 260794 + timestamp: 1686979818648 +- platform: win-64 + name: libhwloc + version: 2.9.3 + category: main + manager: conda + dependencies: + - libxml2 >=2.11.5,<3.0.0a0 + - pthreads-win32 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.9.3-default_haede6df_1009.conda + hash: + md5: 87da045f6d26ce9fe20ad76a18f6a18a + sha256: 2e8c4bb7173f281a8e13f333a23c9fb7a1c86d342d7dccdd74f2eb583ddde450 + build: default_haede6df_1009 + arch: x86_64 + subdir: win-64 + build_number: 1009 + license: BSD-3-Clause + license_family: BSD + size: 2578462 + timestamp: 1694533393675 +- platform: linux-64 + name: libiconv + version: '1.17' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + hash: + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + build: hd590300_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: LGPL-2.1-only + size: 705775 + timestamp: 1702682170569 +- platform: win-64 + name: libiconv + version: '1.17' + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda + hash: + md5: e1eb10b1cca179f2baa3601e4efc8712 + sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b + build: hcfcfb64_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: LGPL-2.1-only + size: 636146 + timestamp: 1702682547199 +- platform: linux-64 + name: libjpeg-turbo + version: 3.0.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + hash: + md5: ea25936bb4080d843790b586850f82b8 + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 618575 + timestamp: 1694474974816 +- platform: win-64 + name: libjpeg-turbo + version: 3.0.0 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda + hash: + md5: 3f1b948619c45b1ca714d60c7389092c + sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 822966 + timestamp: 1694475223854 +- platform: linux-64 + name: liblapack + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 20_linux64_openblas + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-20_linux64_openblas.conda + hash: + md5: 6fabc51f5e647d09cc010c40061557e0 + sha256: ad7745b8d0f2ccb9c3ba7aaa7167d62fc9f02e45eb67172ae5f0dfb5a3b1a2cc + build: 20_linux64_openblas + arch: x86_64 + subdir: linux-64 + build_number: 20 + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - libcblas 3.9.0 20_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14350 + timestamp: 1700568424034 +- platform: win-64 + name: liblapack + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 20_win64_mkl + url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-20_win64_mkl.conda + hash: + md5: 9510d07424d70fcac553d86b3e4a7c14 + sha256: 7627ef580c26e48c3496b5885fd32be4e4db49fa1077eb21235dc638489565f6 + build: 20_win64_mkl + arch: x86_64 + subdir: win-64 + build_number: 20 + constrains: + - liblapacke 3.9.0 20_win64_mkl + - blas * mkl + - libcblas 3.9.0 20_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 4980967 + timestamp: 1700569262298 +- platform: linux-64 + name: libllvm15 + version: 15.0.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libxml2 >=2.12.1,<2.13.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm15-15.0.7-hb3ce162_4.conda + hash: + md5: 8a35df3cbc0c8b12cc8af9473ae75eef + sha256: e71584c0f910140630580fdd0a013029a52fd31e435192aea2aa8d29005262d1 + build: hb3ce162_4 + arch: x86_64 + subdir: linux-64 + build_number: 4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 33321457 + timestamp: 1701375836233 +- platform: linux-64 + name: libnghttp2 + version: 1.58.0 + category: main + manager: conda + dependencies: + - c-ares >=1.23.0,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + hash: + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + build: h47da74e_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 631936 + timestamp: 1702130036271 +- platform: linux-64 + name: libnsl + version: 2.0.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + hash: + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-only + license_family: GPL + size: 33408 + timestamp: 1697359010159 +- platform: linux-64 + name: libogg + version: 1.3.4 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libogg-1.3.4-h7f98852_1.tar.bz2 + hash: + md5: 6e8cc2173440d77708196c5b93771680 + sha256: b88afeb30620b11bed54dac4295aa57252321446ba4e6babd7dce4b9ffde9b25 + build: h7f98852_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 210550 + timestamp: 1610382007814 +- platform: win-64 + name: libogg + version: 1.3.4 + category: main + manager: conda + dependencies: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/libogg-1.3.4-h8ffe710_1.tar.bz2 + hash: + md5: 04286d905a0dcb7f7d4a12bdfe02516d + sha256: ef20f04ad2121a07e074b34bfc211587df18180e680963f5c02c54d1951b9ee6 + build: h8ffe710_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 35187 + timestamp: 1610382533961 +- platform: linux-64 + name: libopenblas + version: 0.3.25 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.25-pthreads_h413a1c8_0.conda + hash: + md5: d172b34a443b95f86089e8229ddc9a17 + sha256: 628564517895ee1b09cf72c817548bd80ef1acce6a8214a8520d9f7b44c4cfaf + build: pthreads_h413a1c8_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - openblas >=0.3.25,<0.3.26.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5545169 + timestamp: 1700536004164 +- platform: linux-64 + name: libopus + version: 1.3.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libopus-1.3.1-h7f98852_1.tar.bz2 + hash: + md5: 15345e56d527b330e1cacbdf58676e8f + sha256: 0e1c2740ebd1c93226dc5387461bbcf8142c518f2092f3ea7551f77755decc8f + build: h7f98852_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 260658 + timestamp: 1606823578035 +- platform: linux-64 + name: libpng + version: 1.6.39 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda + hash: + md5: e1c890aebdebbfbf87e2c917187b4416 + sha256: a32b36d34e4f2490b99bddbc77d01a674d304f667f0e62c89e02c961addef462 + build: h753d276_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: zlib-acknowledgement + size: 282599 + timestamp: 1669075729952 +- platform: win-64 + name: libpng + version: 1.6.39 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.39-h19919ed_0.conda + hash: + md5: ab6febdb2dbd9c00803609079db4de71 + sha256: 1f139a72109366ba1da69f5bdc569b0e6783f887615807c02d7bfcc2c7575067 + build: h19919ed_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: zlib-acknowledgement + size: 343883 + timestamp: 1669076173145 +- platform: linux-64 + name: libpq + version: '16.1' + category: main + manager: conda + dependencies: + - krb5 >=1.21.2,<1.22.0a0 + - libgcc-ng >=12 + - openssl >=3.2.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libpq-16.1-h33b98f1_7.conda + hash: + md5: 675317e46167caea24542d85c72f19a3 + sha256: 833fd96338dffc6784fb5f79ab805fa5a4c2cabf5c08c4f1d5caf4e290e39c28 + build: h33b98f1_7 + arch: x86_64 + subdir: linux-64 + build_number: 7 + license: PostgreSQL + size: 2469597 + timestamp: 1702130001416 +- platform: linux-64 + name: libsanitizer + version: 13.2.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h7e041cc_3.conda + hash: + md5: c63848839569bb82a3eff11f01e5de00 + sha256: db89f198b17dace0b6b71a5985cb6957a134fba96dcbbf2979c013f44cc4eb13 + build: h7e041cc_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 4068330 + timestamp: 1699753652142 +- platform: linux-64 + name: libsndfile + version: 1.2.2 + category: main + manager: conda + dependencies: + - lame >=3.100,<3.101.0a0 + - libflac >=1.4.3,<1.5.0a0 + - libgcc-ng >=12 + - libogg >=1.3.4,<1.4.0a0 + - libopus >=1.3.1,<2.0a0 + - libstdcxx-ng >=12 + - libvorbis >=1.3.7,<1.4.0a0 + - mpg123 >=1.32.1,<1.33.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsndfile-1.2.2-hc60ed4a_1.conda + hash: + md5: ef1910918dd895516a769ed36b5b3a4e + sha256: f709cbede3d4f3aee4e2f8d60bd9e256057f410bd60b8964cb8cf82ec1457573 + build: hc60ed4a_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: LGPL-2.1-or-later + license_family: LGPL + size: 354372 + timestamp: 1695747735668 +- platform: linux-64 + name: libsqlite + version: 3.44.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.44.2-h2797004_0.conda + hash: + md5: 3b6a9f225c3dbe0d24f4fedd4625c5bf + sha256: ee2c4d724a3ed60d5b458864d66122fb84c6ce1df62f735f90d8db17b66cd88a + build: h2797004_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Unlicense + size: 845830 + timestamp: 1700863204572 +- platform: win-64 + name: libsqlite + version: 3.44.2 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.44.2-hcfcfb64_0.conda + hash: + md5: 4a5f5ab56cbf3ccd08d71a1168061213 + sha256: 25bfcf79ec863c2c0f0b3599981e2eac57efc5302faf2bb84f68c3f0faa55d1c + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Unlicense + size: 853171 + timestamp: 1700863704859 +- platform: linux-64 + name: libssh2 + version: 1.11.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.1.1,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + build: h0841786_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 271133 + timestamp: 1685837707056 +- platform: win-64 + name: libssh2 + version: 1.11.0 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.1.1,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.0-h7dfc565_0.conda + hash: + md5: dc262d03aae04fe26825062879141a41 + sha256: 813fd04eed2a2d5d9c36e53c554f9c1f08e9324e2922bd60c9c52dbbed2dbcec + build: h7dfc565_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 266806 + timestamp: 1685838242099 +- platform: linux-64 + name: libstdcxx-devel_linux-64 + version: 13.2.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-ha9c7c90_103.conda + hash: + md5: 46947f93254fdedc5ae0725b11ca3610 + sha256: 764e5323673219c063495141b28515d7035c8f580e78cd44d2b8d8c7885e4c32 + build: ha9c7c90_103 + arch: x86_64 + subdir: linux-64 + build_number: 103 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + noarch: generic + size: 12841490 + timestamp: 1699753551899 +- platform: linux-64 + name: libstdcxx-ng + version: 13.2.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_3.conda + hash: + md5: 937eaed008f6bf2191c5fe76f87755e9 + sha256: 6c6c49efedcc5709a66f19fb6b26b69c6a5245310fd1d9a901fd5e38aaf7f882 + build: h7e041cc_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 3842940 + timestamp: 1699753676253 +- platform: linux-64 + name: libsystemd0 + version: '255' + category: main + manager: conda + dependencies: + - __glibc >=2.17,<3.0.a0 + - libcap >=2.69,<2.70.0a0 + - libgcc-ng >=12 + - libgcrypt >=1.10.3,<2.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - xz >=5.2.6,<6.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsystemd0-255-h3516f8a_0.conda + hash: + md5: 24e2649ebd432e652aa72cfd05f23a8e + sha256: 9306eafe761a758e0c2efa92025bfc0684c66ef500efdea4fbe4687b59e8099e + build: h3516f8a_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-or-later + size: 404326 + timestamp: 1701982703751 +- platform: linux-64 + name: libtiff + version: 4.6.0 + category: main + manager: conda + dependencies: + - lerc >=4.0.0,<5.0a0 + - libdeflate >=1.19,<1.20.0a0 + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libstdcxx-ng >=12 + - libwebp-base >=1.3.2,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-ha9c0a0a_2.conda + hash: + md5: 55ed21669b2015f77c180feb1dd41930 + sha256: 45158f5fbee7ee3e257e6b9f51b9f1c919ed5518a94a9973fe7fa4764330473e + build: ha9c0a0a_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: HPND + size: 283198 + timestamp: 1695661593314 +- platform: win-64 + name: libtiff + version: 4.6.0 + category: main + manager: conda + dependencies: + - lerc >=4.0.0,<5.0a0 + - libdeflate >=1.19,<1.20.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.6.0-h6e2ebb7_2.conda + hash: + md5: 08d653b74ee2dec0131ad4259ffbb126 + sha256: f7b50b71840a5d8edd74a8bccf0c173ca2599bd136e366c35722272b4afa0500 + build: h6e2ebb7_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: HPND + size: 787430 + timestamp: 1695662030293 +- platform: linux-64 + name: libuuid + version: 2.38.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + build: h0b41bf4_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 33601 + timestamp: 1680112270483 +- platform: linux-64 + name: libvorbis + version: 1.3.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + - libogg >=1.3.4,<1.4.0a0 + - libstdcxx-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libvorbis-1.3.7-h9c3ff4c_0.tar.bz2 + hash: + md5: 309dec04b70a3cc0f1e84a4013683bc0 + sha256: 53080d72388a57b3c31ad5805c93a7328e46ff22fab7c44ad2a86d712740af33 + build: h9c3ff4c_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 286280 + timestamp: 1610609811627 +- platform: win-64 + name: libvorbis + version: 1.3.7 + category: main + manager: conda + dependencies: + - libogg >=1.3.4,<1.4.0a0 + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/libvorbis-1.3.7-h0e60522_0.tar.bz2 + hash: + md5: e1a22282de0169c93e4ffe6ce6acc212 + sha256: 6cdc018a024908270205d8512d92f92cf0adaaa5401c2b403757189b138bf56a + build: h0e60522_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 273721 + timestamp: 1610610022421 +- platform: linux-64 + name: libwebp-base + version: 1.3.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_0.conda + hash: + md5: 30de3fd9b3b602f7473f30e684eeea8c + sha256: 68764a760fa81ef35dacb067fe8ace452bbb41476536a4a147a1051df29525f0 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - libwebp 1.3.2 + license: BSD-3-Clause + license_family: BSD + size: 401830 + timestamp: 1694709121323 +- platform: win-64 + name: libwebp-base + version: 1.3.2 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.3.2-hcfcfb64_0.conda + hash: + md5: dcde8820959e64378d4e06147ffecfdd + sha256: af1453fab10d1fb8b379c61a78882614051a8bac37307d7ac4fb58eac667709e + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - libwebp 1.3.2 + license: BSD-3-Clause + license_family: BSD + size: 268870 + timestamp: 1694709461733 +- platform: linux-64 + name: libxcb + version: '1.15' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - pthread-stubs + - xorg-libxau + - xorg-libxdmcp + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda + hash: + md5: 33277193f5b92bad9fdd230eb700929c + sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 + build: h0b41bf4_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 384238 + timestamp: 1682082368177 +- platform: win-64 + name: libxcb + version: '1.15' + category: main + manager: conda + dependencies: + - m2w64-gcc-libs + - m2w64-gcc-libs-core + - pthread-stubs + - xorg-libxau + - xorg-libxdmcp + url: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.15-hcd874cb_0.conda + hash: + md5: 090d91b69396f14afef450c285f9758c + sha256: d01322c693580f53f8d07a7420cd6879289f5ddad5531b372c3efd1c37cac3bf + build: hcd874cb_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 969788 + timestamp: 1682083087243 +- platform: linux-64 + name: libxcrypt + version: 4.4.36 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: LGPL-2.1-or-later + size: 100393 + timestamp: 1702724383534 +- platform: linux-64 + name: libxkbcommon + version: 1.6.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libxcb >=1.15,<1.16.0a0 + - libxml2 >=2.12.1,<2.13.0a0 + - xkeyboard-config + - xorg-libxau >=1.0.11,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.6.0-hd429924_1.conda + hash: + md5: 1dbcc04604fdf1e526e6d1b0b6938396 + sha256: 213a4c927618198fd5fb5e7b0a76b89310a9c04a3ea025d59771754ee8a89451 + build: hd429924_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT/X11 Derivative + license_family: MIT + size: 574868 + timestamp: 1701352639132 +- platform: linux-64 + name: libxml2 + version: 2.12.3 + category: main + manager: conda + dependencies: + - icu >=73.2,<74.0a0 + - libgcc-ng >=12 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.3-h232c23b_0.conda + hash: + md5: bc6ac4c0cea148d924f621985bc3892b + sha256: 31dd757689a1a28e42021208b6c740e84bcfdfee213a39c9bcc0dfbc33acf7a5 + build: h232c23b_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 704325 + timestamp: 1702421185813 +- platform: win-64 + name: libxml2 + version: 2.12.4 + category: main + manager: conda + dependencies: + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.4-hc3477c8_1.conda + hash: + md5: bc7291fa70257ccf420b564c870a53b2 + sha256: b3aa51adb9fb9413227cedc0ce7c5d9f9cf99940911cca3da117e940a8b778ce + build: hc3477c8_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 1570461 + timestamp: 1705355510142 +- platform: linux-64 + name: libzlib + version: 1.2.13 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + hash: + md5: f36c115f1ee199da648e0597ec2047ad + sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 + build: hd590300_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 61588 + timestamp: 1686575217516 +- platform: win-64 + name: libzlib + version: 1.2.13 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda + hash: + md5: 5fdb9c6a113b6b6cb5e517fd972d5f41 + sha256: c161822ee8130b71e08b6d282b9919c1de2c5274b29921a867bca0f7d30cad26 + build: hcfcfb64_5 + arch: x86_64 + subdir: win-64 + build_number: 5 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 55800 + timestamp: 1686575452215 +- platform: linux-64 + name: libzopfli + version: 1.0.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + - libstdcxx-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + hash: + md5: c66fe2d123249af7651ebde8984c51c2 + sha256: ff94f30b2e86cbad6296cf3e5804d442d9e881f7ba8080d92170981662528c6e + build: h9c3ff4c_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 168074 + timestamp: 1607309189989 +- platform: win-64 + name: libzopfli + version: 1.0.3 + category: main + manager: conda + dependencies: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + hash: + md5: b4b0cbc0abc9f26b730231ffdabf3881 + sha256: c6f2ee6f4758f6e286a2ba9b7503cff25b178fcddeda997921d3012961ce9a62 + build: h0e60522_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 207974 + timestamp: 1607309596528 +- platform: linux-64 + name: lz4-c + version: 1.9.4 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.4-hcb278e6_0.conda + hash: + md5: 318b08df404f9c9be5712aaa5a6f0bb0 + sha256: 1b4c105a887f9b2041219d57036f72c4739ab9e9fe5a1486f094e58c76b31f5f + build: hcb278e6_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 143402 + timestamp: 1674727076728 +- platform: win-64 + name: lz4-c + version: 1.9.4 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.4-hcfcfb64_0.conda + hash: + md5: e34720eb20a33fc3bfb8451dd837ab7a + sha256: a0954b4b1590735ea5f3d0f4579c3883f8ac837387afd5b398b241fda85124ab + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 134235 + timestamp: 1674728465431 +- platform: win-64 + name: m2w64-gcc-libgfortran + version: 5.3.0 + category: main + manager: conda + dependencies: + - m2w64-gcc-libs-core + - msys2-conda-epoch ==20160418 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2 + hash: + md5: 066552ac6b907ec6d72c0ddab29050dc + sha256: 9de95a7996d5366ae0808eef2acbc63f9b11b874aa42375f55379e6715845dc6 + build: '6' + arch: x86_64 + subdir: win-64 + build_number: 6 + license: GPL, LGPL, FDL, custom + size: 350687 + timestamp: 1608163451316 +- platform: win-64 + name: m2w64-gcc-libs + version: 5.3.0 + category: main + manager: conda + dependencies: + - m2w64-gcc-libgfortran + - m2w64-gcc-libs-core + - m2w64-gmp + - m2w64-libwinpthread-git + - msys2-conda-epoch ==20160418 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2 + hash: + md5: fe759119b8b3bfa720b8762c6fdc35de + sha256: 3bd1ab02b7c89a5b153a17be03b36d833f1517ff2a6a77ead7c4a808b88196aa + build: '7' + arch: x86_64 + subdir: win-64 + build_number: 7 + license: GPL3+, partial:GCCRLE, partial:LGPL2+ + size: 532390 + timestamp: 1608163512830 +- platform: win-64 + name: m2w64-gcc-libs-core + version: 5.3.0 + category: main + manager: conda + dependencies: + - m2w64-gmp + - m2w64-libwinpthread-git + - msys2-conda-epoch ==20160418 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2 + hash: + md5: 4289d80fb4d272f1f3b56cfe87ac90bd + sha256: 58afdfe859ed2e9a9b1cc06bc408720cb2c3a6a132e59d4805b090d7574f4ee0 + build: '7' + arch: x86_64 + subdir: win-64 + build_number: 7 + license: GPL3+, partial:GCCRLE, partial:LGPL2+ + size: 219240 + timestamp: 1608163481341 +- platform: win-64 + name: m2w64-gmp + version: 6.1.0 + category: main + manager: conda + dependencies: + - msys2-conda-epoch ==20160418 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-gmp-6.1.0-2.tar.bz2 + hash: + md5: 53a1c73e1e3d185516d7e3af177596d9 + sha256: 7e3cd95f554660de45f8323fca359e904e8d203efaf07a4d311e46d611481ed1 + build: '2' + arch: x86_64 + subdir: win-64 + build_number: 2 + license: LGPL3 + size: 743501 + timestamp: 1608163782057 +- platform: win-64 + name: m2w64-libwinpthread-git + version: 5.0.0.4634.697f757 + category: main + manager: conda + dependencies: + - msys2-conda-epoch ==20160418 + url: https://conda.anaconda.org/conda-forge/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2 + hash: + md5: 774130a326dee16f1ceb05cc687ee4f0 + sha256: f63a09b2cae7defae0480f1740015d6235f1861afa6fe2e2d3e10bd0d1314ee0 + build: '2' + arch: x86_64 + subdir: win-64 + build_number: 2 + license: MIT, BSD + size: 31928 + timestamp: 1608166099896 +- platform: linux-64 + name: markdown-it-py + version: 3.0.0 + category: main + manager: conda + dependencies: + - mdurl >=0.1,<1 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 64356 + timestamp: 1686175179621 + purls: + - pkg:pypi/markdown-it-py +- platform: win-64 + name: markdown-it-py + version: 3.0.0 + category: main + manager: conda + dependencies: + - mdurl >=0.1,<1 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 64356 + timestamp: 1686175179621 + purls: + - pkg:pypi/markdown-it-py +- platform: linux-64 + name: matplotlib + version: 3.8.2 + category: main + manager: conda + dependencies: + - matplotlib-base >=3.8.2,<3.8.3.0a0 + - pyqt >=5.10 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tornado >=5 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.8.2-py310hff52083_0.conda + hash: + md5: 7baa698e8867dbc42c18a3f9cab69f99 + sha256: 55c3d79e99284d530e5a2dbd7e0b9879b9a943c16bbbfe32567733fc47520e8a + build: py310hff52083_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 8381 + timestamp: 1700509781531 +- platform: win-64 + name: matplotlib + version: 3.8.2 + category: main + manager: conda + dependencies: + - matplotlib-base >=3.8.2,<3.8.3.0a0 + - pyqt >=5.10 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tornado >=5 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.8.2-py310h5588dad_0.conda + hash: + md5: de48835b75cfb34c697394b496c7ac90 + sha256: 8e5fd622b922fe3ae646c669dcd4512585c118779b4cde447403c63270d39b58 + build: py310h5588dad_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 8790 + timestamp: 1700510010448 +- platform: linux-64 + name: matplotlib-base + version: 3.8.2 + category: main + manager: conda + dependencies: + - certifi >=2020.06.20 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype >=2.12.1,<3.0a0 + - kiwisolver >=1.3.1 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.21,<2 + - numpy >=1.22.4,<2.0a0 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.7 + - python_abi 3.10.* *_cp310 + - tk >=8.6.13,<8.7.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.8.2-py310h62c0568_0.conda + hash: + md5: 3cbbc7d0b54df02c9a006d3de14911d9 + sha256: 078f5f1ece533a03710dd6d644555f1f2f4cbe18f1412d695ffb304e3d8c9381 + build: py310h62c0568_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 6938926 + timestamp: 1700509738716 + purls: + - pkg:pypi/matplotlib +- platform: win-64 + name: matplotlib-base + version: 3.8.2 + category: main + manager: conda + dependencies: + - certifi >=2020.06.20 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype >=2.12.1,<3.0a0 + - kiwisolver >=1.3.1 + - numpy >=1.21,<2 + - numpy >=1.22.4,<2.0a0 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.7 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.8.2-py310hc9baf74_0.conda + hash: + md5: b10c384080ad1ca795024af771132be7 + sha256: 1c943984434c92fd2a3b6dae804a0047433642d720fd6f45a764f4b3198e71a0 + build: py310hc9baf74_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 6896630 + timestamp: 1700509943082 + purls: + - pkg:pypi/matplotlib +- platform: linux-64 + name: matplotlib-inline + version: 0.1.6 + category: main + manager: conda + dependencies: + - python >=3.6 + - traitlets + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12273 + timestamp: 1660814913405 + purls: + - pkg:pypi/matplotlib-inline +- platform: win-64 + name: matplotlib-inline + version: 0.1.6 + category: main + manager: conda + dependencies: + - python >=3.6 + - traitlets + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12273 + timestamp: 1660814913405 + purls: + - pkg:pypi/matplotlib-inline +- platform: linux-64 + name: mdurl + version: 0.1.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + hash: + md5: 776a8dd9e824f77abac30e6ef43a8f7a + sha256: 64073dfb6bb429d52fff30891877b48c7ec0f89625b1bf844905b66a81cce6e1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14680 + timestamp: 1704317789138 + purls: + - pkg:pypi/mdurl +- platform: win-64 + name: mdurl + version: 0.1.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + hash: + md5: 776a8dd9e824f77abac30e6ef43a8f7a + sha256: 64073dfb6bb429d52fff30891877b48c7ec0f89625b1bf844905b66a81cce6e1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14680 + timestamp: 1704317789138 + purls: + - pkg:pypi/mdurl +- platform: linux-64 + name: meson + version: 1.3.1 + category: main + manager: conda + dependencies: + - ninja >=1.8.2 + - python >=3.5.2 + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/meson-1.3.1-pyhd8ed1ab_0.conda + hash: + md5: 54744574be599bff37ee4c3624ed02d2 + sha256: b932c964d9cf054ba8165bf1120ec3ea0669ba888451afd9f5431f2155bebfad + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 628020 + timestamp: 1703631711442 +- platform: win-64 + name: meson + version: 1.3.1 + category: main + manager: conda + dependencies: + - ninja >=1.8.2 + - python >=3.5.2 + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/meson-1.3.1-pyhd8ed1ab_0.conda + hash: + md5: 54744574be599bff37ee4c3624ed02d2 + sha256: b932c964d9cf054ba8165bf1120ec3ea0669ba888451afd9f5431f2155bebfad + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 628020 + timestamp: 1703631711442 +- platform: linux-64 + name: meson-python + version: 0.15.0 + category: main + manager: conda + dependencies: + - colorama + - meson >=0.63.3 + - ninja + - pyproject-metadata >=0.7.1 + - python >=3.7 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/meson-python-0.15.0-pyh0c530f3_0.conda + hash: + md5: 3bc64565ca78ce3bb80248d09926d8f9 + sha256: 27c4f5132d3697e5bede4179c00d32d07560585d3578d7b8dde4a1e4c5d1a67c + build: pyh0c530f3_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 69709 + timestamp: 1698322017651 +- platform: win-64 + name: meson-python + version: 0.15.0 + category: main + manager: conda + dependencies: + - colorama + - meson >=0.63.3 + - ninja + - pyproject-metadata >=0.7.1 + - python >=3.7 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/meson-python-0.15.0-pyh0c530f3_0.conda + hash: + md5: 3bc64565ca78ce3bb80248d09926d8f9 + sha256: 27c4f5132d3697e5bede4179c00d32d07560585d3578d7b8dde4a1e4c5d1a67c + build: pyh0c530f3_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 69709 + timestamp: 1698322017651 +- platform: win-64 + name: mkl + version: 2023.2.0 + category: main + manager: conda + dependencies: + - intel-openmp 2023.* + - tbb 2021.* + url: https://conda.anaconda.org/conda-forge/win-64/mkl-2023.2.0-h6a75c08_50497.conda + hash: + md5: 064cea9f45531e7b53584acf4bd8b044 + sha256: 46ec9e767279da219398b6e79c8fa95822b2ed3c8e02ab604615b7d1213a5d5a + build: h6a75c08_50497 + arch: x86_64 + subdir: win-64 + build_number: 50497 + license: LicenseRef-ProprietaryIntel + license_family: Proprietary + size: 144666110 + timestamp: 1698352013664 +- platform: linux-64 + name: mpg123 + version: 1.32.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.3-h59595ed_0.conda + hash: + md5: bdadff838d5437aea83607ced8b37f75 + sha256: f02b8ed16b3a488938b5f9453d19ea315ce6ed0d46cc389ecfaa28f2a4c3cb16 + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-only + license_family: LGPL + size: 491969 + timestamp: 1696265613952 +- platform: linux-64 + name: mpi + version: '1.0' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/mpi-1.0-mpich.tar.bz2 + hash: + md5: c1fcff3417b5a22bbc4cf6e8c23648cf + sha256: cbe8f3bff576ce067141dc34811a6c5c9b56d0da50f28b3cdcc1d6d9661d484c + build: mpich + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD 3-clause + size: 4184 +- platform: win-64 + name: mpi + version: '1.0' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/mpi-1.0-msmpi.tar.bz2 + hash: + md5: ecf470117289595887c7efda5de48a38 + sha256: afea9b23310bd86b8bf5f2f400fc1eb5c7e2ac60a00edf75ec1a2a6ab5ab065e + build: msmpi + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD 3-clause + size: 4713 + timestamp: 1610053811730 +- platform: linux-64 + name: mpi4py + version: 3.1.5 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - mpich >=4.1.2,<5.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/mpi4py-3.1.5-py310h30280a6_0.conda + hash: + md5: db4f1101bada4c1dfa9b34e3acf5e787 + sha256: a0f140aae4d45a7c568feaf32133d308a7b8e69b0d39fca2166a23e6da90c0c4 + build: py310h30280a6_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 541301 + timestamp: 1697529365378 +- platform: win-64 + name: mpi4py + version: 3.1.5 + category: main + manager: conda + dependencies: + - msmpi + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/mpi4py-3.1.5-py310h1af2bfe_0.conda + hash: + md5: 8126c248a2399ef877c21854766e9404 + sha256: e8bc33276e7e1c4f4b198d7f3e60003547cc1ea24fbf52242abd096547cf48df + build: py310h1af2bfe_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 414371 + timestamp: 1697530166312 +- platform: linux-64 + name: mpich + version: 4.1.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + - libstdcxx-ng >=12 + - mpi 1.0 mpich + url: https://conda.anaconda.org/conda-forge/linux-64/mpich-4.1.2-h846660c_101.conda + hash: + md5: 2cb131a58b45cbe8accf951b9d089130 + sha256: bb37f98c837e14f2a6560a5b0ad822f90abaea9294505c8e7fa41919a957fae6 + build: h846660c_101 + arch: x86_64 + subdir: linux-64 + build_number: 101 + license: LicenseRef-MPICH + license_family: Other + size: 25780321 + timestamp: 1703072256042 +- platform: win-64 + name: msmpi + version: 10.1.1 + category: main + manager: conda + dependencies: + - m2w64-gcc-libs + - mpi 1.0 msmpi + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/msmpi-10.1.1-h3502643_7.tar.bz2 + hash: + md5: 00c53b79e837c2b7b0b6edffb0bcb55e + sha256: 1c69dc018dbb249e988b4c9ce246ff51ad090eef0138798727632b4952f754a9 + build: h3502643_7 + arch: x86_64 + subdir: win-64 + build_number: 7 + license: MIT + license_family: MIT + size: 11683549 + timestamp: 1628048550481 +- platform: win-64 + name: msys2-conda-epoch + version: '20160418' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/msys2-conda-epoch-20160418-1.tar.bz2 + hash: + md5: b0309b72560df66f71a9d5e34a5efdfa + sha256: 99358d58d778abee4dca82ad29fb58058571f19b0f86138363c260049d4ac7f1 + build: '1' + arch: x86_64 + subdir: win-64 + build_number: 1 + size: 3227 + timestamp: 1608166968312 +- platform: linux-64 + name: munkres + version: 1.1.4 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 2ba8498c1018c1e9c61eb99b973dfe19 + sha256: f86fb22b58e93d04b6f25e0d811b56797689d598788b59dcb47f59045b568306 + build: pyh9f0ad1d_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 12452 + timestamp: 1600387789153 +- platform: win-64 + name: munkres + version: 1.1.4 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 2ba8498c1018c1e9c61eb99b973dfe19 + sha256: f86fb22b58e93d04b6f25e0d811b56797689d598788b59dcb47f59045b568306 + build: pyh9f0ad1d_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 12452 + timestamp: 1600387789153 +- platform: linux-64 + name: mysql-common + version: 8.0.33 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.1.4,<4.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/mysql-common-8.0.33-hf1915f5_6.conda + hash: + md5: 80bf3b277c120dd294b51d404b931a75 + sha256: c8b2c5c9d0d013a4f6ef96cb4b339bfdc53a74232d8c61ed08178e5b1ec4eb63 + build: hf1915f5_6 + arch: x86_64 + subdir: linux-64 + build_number: 6 + size: 753467 + timestamp: 1698937026421 +- platform: linux-64 + name: mysql-libs + version: 8.0.33 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - mysql-common 8.0.33 hf1915f5_6 + - openssl >=3.1.4,<4.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/mysql-libs-8.0.33-hca2cd23_6.conda + hash: + md5: e87530d1b12dd7f4e0f856dc07358d60 + sha256: 78c905637dac79b197395065c169d452b8ca2a39773b58e45e23114f1cb6dcdb + build: hca2cd23_6 + arch: x86_64 + subdir: linux-64 + build_number: 6 + size: 1530126 + timestamp: 1698937116126 +- platform: linux-64 + name: nbformat + version: 5.9.2 + category: main + manager: conda + dependencies: + - jsonschema >=2.6 + - jupyter_core + - python >=3.8 + - python-fastjsonschema + - traitlets >=5.1 + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + hash: + md5: 61ba076de6530d9301a0053b02f093d2 + sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 100446 + timestamp: 1690815009867 + purls: + - pkg:pypi/nbformat +- platform: win-64 + name: nbformat + version: 5.9.2 + category: main + manager: conda + dependencies: + - jsonschema >=2.6 + - jupyter_core + - python >=3.8 + - python-fastjsonschema + - traitlets >=5.1 + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + hash: + md5: 61ba076de6530d9301a0053b02f093d2 + sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 100446 + timestamp: 1690815009867 + purls: + - pkg:pypi/nbformat +- platform: linux-64 + name: nbstripout + version: 0.6.1 + category: main + manager: conda + dependencies: + - nbformat + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.6.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 53913d98739527409e0f3227ed7eef7d + sha256: 17a89af33c0e4ac72f5ec602bc8fc0c02227b18d6b4316d17471b551a6a44e5a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18637 + timestamp: 1664115171631 + purls: + - pkg:pypi/nbstripout +- platform: win-64 + name: nbstripout + version: 0.6.1 + category: main + manager: conda + dependencies: + - nbformat + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.6.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 53913d98739527409e0f3227ed7eef7d + sha256: 17a89af33c0e4ac72f5ec602bc8fc0c02227b18d6b4316d17471b551a6a44e5a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18637 + timestamp: 1664115171631 + purls: + - pkg:pypi/nbstripout +- platform: linux-64 + name: ncurses + version: '6.4' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda + hash: + md5: 7dbaa197d7ba6032caf7ae7f32c1efa0 + sha256: 91cc03f14caf96243cead96c76fe91ab5925a695d892e83285461fb927dece5e + build: h59595ed_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: X11 AND BSD-3-Clause + size: 884434 + timestamp: 1698751260967 +- platform: linux-64 + name: networkx + version: 3.2.1 + category: main + manager: conda + dependencies: + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda + hash: + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - matplotlib >=3.5 + - scipy >=1.9,!=1.11.0,!=1.11.1 + - numpy >=1.22 + - pandas >=1.4 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 1149552 + timestamp: 1698504905258 + purls: + - pkg:pypi/networkx +- platform: win-64 + name: networkx + version: 3.2.1 + category: main + manager: conda + dependencies: + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda + hash: + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - matplotlib >=3.5 + - scipy >=1.9,!=1.11.0,!=1.11.1 + - numpy >=1.22 + - pandas >=1.4 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 1149552 + timestamp: 1698504905258 + purls: + - pkg:pypi/networkx +- platform: linux-64 + name: ninja + version: 1.11.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.11.1-h924138e_0.conda + hash: + md5: 73a4953a2d9c115bdc10ff30a52f675f + sha256: b555247ac8859b4ff311e3d708a0640f1bfe9fae7125c485b444072474a84c41 + build: h924138e_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 2251263 + timestamp: 1676837602636 +- platform: win-64 + name: ninja + version: 1.11.1 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/ninja-1.11.1-h91493d7_0.conda + hash: + md5: 44a99ef26178ea98626ff8e027702795 + sha256: 0ffb1912768af8354a930f482368ef170bf3d8217db328dfea1c8b09772c8c71 + build: h91493d7_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 279200 + timestamp: 1676838681615 +- platform: linux-64 + name: nspr + version: '4.35' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda + hash: + md5: da0ec11a6454ae19bff5b02ed881a2b1 + sha256: 8fadeebb2b7369a4f3b2c039a980d419f65c7b18267ba0c62588f9f894396d0c + build: h27087fc_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MPL-2.0 + license_family: MOZILLA + size: 226848 + timestamp: 1669784948267 +- platform: linux-64 + name: nss + version: '3.96' + category: main + manager: conda + dependencies: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libsqlite >=3.44.2,<4.0a0 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + - nspr >=4.35,<5.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.96-h1d7d5a4_0.conda + hash: + md5: 1c8f8b8eb041ecd54053fc4b6ad57957 + sha256: 9f73d55f42085d7bca59c675fea57dae2a21f3d62530e47b3d89db89ca444767 + build: h1d7d5a4_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MPL-2.0 + license_family: MOZILLA + size: 2000770 + timestamp: 1702668797006 +- platform: linux-64 + name: numpy + version: 1.26.3 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.3-py310hb13e2d6_0.conda + hash: + md5: e5e9c6f112d581cdf465b8ca861cb14f + sha256: bd199b12daf8713d2975e9b940e913cbb25527e5502c98bbf7acf16f992f6e66 + build: py310hb13e2d6_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 6961467 + timestamp: 1704280779661 + purls: + - pkg:pypi/numpy +- platform: win-64 + name: numpy + version: 1.26.3 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.3-py310hf667824_0.conda + hash: + md5: e6b4eafc52dd589bdb30edf38048cb32 + sha256: 447340b7878c9202823ab9f115fc4a8f34fbb9d58f5af20debdc7cace3e77dc5 + build: py310hf667824_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 5918937 + timestamp: 1704281348801 + purls: + - pkg:pypi/numpy +- platform: linux-64 + name: openjpeg + version: 2.5.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libpng >=1.6.39,<1.7.0a0 + - libstdcxx-ng >=12 + - libtiff >=4.6.0,<4.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-h488ebb8_3.conda + hash: + md5: 128c25b7fe6a25286a48f3a6a9b5b6f3 + sha256: 9fe91b67289267de68fda485975bb48f0605ac503414dc663b50d8b5f29bc82a + build: h488ebb8_3 + arch: x86_64 + subdir: linux-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 356698 + timestamp: 1694708325417 +- platform: win-64 + name: openjpeg + version: 2.5.0 + category: main + manager: conda + dependencies: + - libpng >=1.6.39,<1.7.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.0-h3d672ee_3.conda + hash: + md5: 45a9628a04efb6fc326fff0a8f47b799 + sha256: c0f64d9642f0287f17cd9b6f1633d97a91efd66a0cb9b0414c540b247684985d + build: h3d672ee_3 + arch: x86_64 + subdir: win-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 236847 + timestamp: 1694708878963 +- platform: linux-64 + name: openssl + version: 3.2.0 + category: main + manager: conda + dependencies: + - ca-certificates + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda + hash: + md5: 603827b39ea2b835268adb8c821b8570 + sha256: 80efc6f429bd8e622d999652e5cba2ca56fcdb9c16a439d2ce9b4313116e4a87 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2854103 + timestamp: 1701162437033 +- platform: win-64 + name: openssl + version: 3.2.0 + category: main + manager: conda + dependencies: + - ca-certificates + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.0-hcfcfb64_1.conda + hash: + md5: d10167022f99bad12ee07dea022d5830 + sha256: 373b9671173ef3413d2a95f3781176b818db904ba82298f8447b9658d71e2cc9 + build: hcfcfb64_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 8248125 + timestamp: 1701164404616 +- platform: linux-64 + name: packaging + version: '23.2' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 49452 + timestamp: 1696202521121 + purls: + - pkg:pypi/packaging +- platform: win-64 + name: packaging + version: '23.2' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 49452 + timestamp: 1696202521121 + purls: + - pkg:pypi/packaging +- platform: linux-64 + name: pandas + version: 2.1.4 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.10.* *_cp310 + - pytz >=2020.1 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py310hcc13569_0.conda + hash: + md5: 410f7e83992a591e492c25049a859254 + sha256: d0743541397140a25a89ab0686933005a4c104d95c23ff1c322f903a50b18099 + build: py310hcc13569_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 12413413 + timestamp: 1702057653692 +- platform: win-64 + name: pandas + version: 2.1.4 + category: main + manager: conda + dependencies: + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.10.* *_cp310 + - pytz >=2020.1 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.1.4-py310hecd3228_0.conda + hash: + md5: 6e13abfa9738c97746bb4ce0fb117462 + sha256: ff1b3ed37c84fd85652b9965df9db6a218effa617145d7eda6589bdb1b752c03 + build: py310hecd3228_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 11318695 + timestamp: 1702058188712 +- platform: linux-64 + name: parso + version: 0.8.3 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 71048 + timestamp: 1638335054552 + purls: + - pkg:pypi/parso +- platform: win-64 + name: parso + version: 0.8.3 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 71048 + timestamp: 1638335054552 + purls: + - pkg:pypi/parso +- platform: linux-64 + name: pcre2 + version: '10.42' + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.42-hcad00b1_0.conda + hash: + md5: 679c8961826aa4b50653bce17ee52abe + sha256: 3ca54ff0abcda964af7d4724d389ae20d931159ae1881cfe57ad4b0ab9e6a380 + build: hcad00b1_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 1017235 + timestamp: 1698610864983 +- platform: win-64 + name: pcre2 + version: '10.42' + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.42-h17e33f8_0.conda + hash: + md5: 59610c61da3af020289a806ec9c6a7fd + sha256: 25e33b148478de58842ccc018fbabb414665de59270476e92c951203d4485bb1 + build: h17e33f8_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 880802 + timestamp: 1698611415241 +- platform: linux-64 + name: pexpect + version: 4.8.0 + category: main + manager: conda + dependencies: + - ptyprocess >=0.5 + - python + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2 + hash: + md5: 330448ce4403cc74990ac07c555942a1 + sha256: 07706c0417ead94f359ca7278f65452d3c396448777aba1da6a11fc351bdca9a + build: pyh1a96a4e_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: ISC + noarch: python + size: 48780 + timestamp: 1667297617062 + purls: + - pkg:pypi/pexpect +- platform: linux-64 + name: pickleshare + version: 0.7.5 + category: main + manager: conda + dependencies: + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + build: py_1003 + arch: x86_64 + subdir: linux-64 + build_number: 1003 + license: MIT + license_family: MIT + noarch: python + size: 9332 + timestamp: 1602536313357 + purls: + - pkg:pypi/pickleshare +- platform: win-64 + name: pickleshare + version: 0.7.5 + category: main + manager: conda + dependencies: + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 + hash: + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + build: py_1003 + arch: x86_64 + subdir: win-64 + build_number: 1003 + license: MIT + license_family: MIT + noarch: python + size: 9332 + timestamp: 1602536313357 + purls: + - pkg:pypi/pickleshare +- platform: linux-64 + name: pillow + version: 10.2.0 + category: main + manager: conda + dependencies: + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libxcb >=1.15,<1.16.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tk >=8.6.13,<8.7.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-10.2.0-py310h01dd4db_0.conda + hash: + md5: 9ec32d0d90f7670eb29bbba18299cf29 + sha256: ddb300d69329606a9933717127880c2062e9d6539d8824b21a43ed63eb7dab4f + build: py310h01dd4db_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: HPND + size: 41213026 + timestamp: 1704252199774 +- platform: win-64 + name: pillow + version: 10.2.0 + category: main + manager: conda + dependencies: + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libxcb >=1.15,<1.16.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tk >=8.6.13,<8.7.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pillow-10.2.0-py310h1e6a543_0.conda + hash: + md5: e9407be0f1d6c21d4f3cbe7f7824fdff + sha256: c292445fa0c933b305f7edce899d08a1b166ddb4dcdf4f0c33c6a8adbb31d603 + build: py310h1e6a543_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: HPND + size: 41562602 + timestamp: 1704252639326 +- platform: linux-64 + name: pip + version: 23.3.2 + category: main + manager: conda + dependencies: + - python >=3.7 + - setuptools + - wheel + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + hash: + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 1395000 + timestamp: 1702822023465 + purls: + - pkg:pypi/pip +- platform: win-64 + name: pip + version: 23.3.2 + category: main + manager: conda + dependencies: + - python >=3.7 + - setuptools + - wheel + url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + hash: + md5: 8591c748f98dcc02253003533bc2e4b1 + sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 1395000 + timestamp: 1702822023465 + purls: + - pkg:pypi/pip +- platform: linux-64 + name: pixman + version: 0.43.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + hash: + md5: 6b4b43013628634b6cfdee6b74fd696b + sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 387320 + timestamp: 1704646964705 +- platform: linux-64 + name: pkgutil-resolve-name + version: 1.3.10 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda + hash: + md5: 405678b942f2481cecdb3e010f4925d9 + sha256: fecf95377134b0e8944762d92ecf7b0149c07d8186fb5db583125a2705c7ea0a + build: pyhd8ed1ab_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT AND PSF-2.0 + noarch: python + size: 10778 + timestamp: 1694617398467 + purls: + - pkg:pypi/pkgutil-resolve-name +- platform: win-64 + name: pkgutil-resolve-name + version: 1.3.10 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda + hash: + md5: 405678b942f2481cecdb3e010f4925d9 + sha256: fecf95377134b0e8944762d92ecf7b0149c07d8186fb5db583125a2705c7ea0a + build: pyhd8ed1ab_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT AND PSF-2.0 + noarch: python + size: 10778 + timestamp: 1694617398467 + purls: + - pkg:pypi/pkgutil-resolve-name +- platform: linux-64 + name: platformdirs + version: 4.1.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 20058 + timestamp: 1701708396900 + purls: + - pkg:pypi/platformdirs +- platform: win-64 + name: platformdirs + version: 4.1.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 + sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 20058 + timestamp: 1701708396900 + purls: + - pkg:pypi/platformdirs +- platform: linux-64 + name: pluggy + version: 1.3.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 22548 + timestamp: 1693086745921 + purls: + - pkg:pypi/pluggy +- platform: win-64 + name: pluggy + version: 1.3.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 2390bd10bed1f3fdc7a537fb5a447d8d + sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 22548 + timestamp: 1693086745921 + purls: + - pkg:pypi/pluggy +- platform: linux-64 + name: ply + version: '3.11' + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-py_1.tar.bz2 + hash: + md5: 7205635cd71531943440fbfe3b6b5727 + sha256: 2cd6fae8f9cbc806b7f828f006ae4a83c23fac917cacfd73c37ce322d4324e53 + build: py_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD 3-clause + license_family: BSD + noarch: python + size: 44837 + timestamp: 1530963184592 + purls: + - pkg:pypi/ply +- platform: win-64 + name: ply + version: '3.11' + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-py_1.tar.bz2 + hash: + md5: 7205635cd71531943440fbfe3b6b5727 + sha256: 2cd6fae8f9cbc806b7f828f006ae4a83c23fac917cacfd73c37ce322d4324e53 + build: py_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD 3-clause + license_family: BSD + noarch: python + size: 44837 + timestamp: 1530963184592 + purls: + - pkg:pypi/ply +- platform: linux-64 + name: prompt-toolkit + version: 3.0.42 + category: main + manager: conda + dependencies: + - python >=3.7 + - wcwidth + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda + hash: + md5: 0bf64bf10eee21f46ac83c161917fa86 + sha256: 58525b2a9305fb154b2b0d43a48b9a6495441b80e4fbea44f2a34a597d2cef16 + build: pyha770c72_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - prompt_toolkit 3.0.42 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 270398 + timestamp: 1702399557137 +- platform: win-64 + name: prompt-toolkit + version: 3.0.42 + category: main + manager: conda + dependencies: + - python >=3.7 + - wcwidth + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda + hash: + md5: 0bf64bf10eee21f46ac83c161917fa86 + sha256: 58525b2a9305fb154b2b0d43a48b9a6495441b80e4fbea44f2a34a597d2cef16 + build: pyha770c72_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - prompt_toolkit 3.0.42 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 270398 + timestamp: 1702399557137 +- platform: linux-64 + name: psutil + version: 5.9.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py310h2372a71_0.conda + hash: + md5: eb1f8f278d0b00c7b6d5c01a5b06609f + sha256: 82d01c09f10cdc0b9333c9478a05bfd55f9cf7b5a1db079938b46920fedd9f7b + build: py310h2372a71_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 364816 + timestamp: 1702833263425 + purls: + - pkg:pypi/psutil +- platform: win-64 + name: psutil + version: 5.9.7 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/psutil-5.9.7-py310h8d17308_0.conda + hash: + md5: a6930ee4b5c84e3e63fc911c257198cb + sha256: fb5898d3b40cb645a88bcd55cd34270b63c932529a72fa383fa8fb0c26306d91 + build: py310h8d17308_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 382204 + timestamp: 1702833871383 + purls: + - pkg:pypi/psutil +- platform: linux-64 + name: pthread-stubs + version: '0.4' + category: main + manager: conda + dependencies: + - libgcc-ng >=7.5.0 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 + hash: + md5: 22dad4df6e8630e8dff2428f6f6a7036 + sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff + build: h36c2ea0_1001 + arch: x86_64 + subdir: linux-64 + build_number: 1001 + license: MIT + license_family: MIT + size: 5625 + timestamp: 1606147468727 +- platform: win-64 + name: pthread-stubs + version: '0.4' + category: main + manager: conda + dependencies: + - m2w64-gcc-libs + url: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-hcd874cb_1001.tar.bz2 + hash: + md5: a1f820480193ea83582b13249a7e7bd9 + sha256: bb5a6ddf1a609a63addd6d7b488b0f58d05092ea84e9203283409bff539e202a + build: hcd874cb_1001 + arch: x86_64 + subdir: win-64 + build_number: 1001 + license: MIT + license_family: MIT + size: 6417 + timestamp: 1606147814351 +- platform: win-64 + name: pthreads-win32 + version: 2.9.1 + category: main + manager: conda + dependencies: + - vc 14.* + url: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 + hash: + md5: e2da8758d7d51ff6aa78a14dfb9dbed4 + sha256: 576a228630a72f25d255a5e345e5f10878e153221a96560f2498040cd6f54005 + build: hfa6e2cd_3 + arch: x86_64 + subdir: win-64 + build_number: 3 + license: LGPL 2 + size: 144301 + timestamp: 1537755684331 +- platform: linux-64 + name: ptyprocess + version: 0.7.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + build: pyhd3deb0d_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: ISC + noarch: python + size: 16546 + timestamp: 1609419417991 + purls: + - pkg:pypi/ptyprocess +- platform: linux-64 + name: pulseaudio-client + version: '16.1' + category: main + manager: conda + dependencies: + - dbus >=1.13.6,<2.0a0 + - libgcc-ng >=12 + - libglib >=2.76.4,<3.0a0 + - libsndfile >=1.2.2,<1.3.0a0 + - libsystemd0 >=254 + url: https://conda.anaconda.org/conda-forge/linux-64/pulseaudio-client-16.1-hb77b528_5.conda + hash: + md5: ac902ff3c1c6d750dd0dfc93a974ab74 + sha256: 9981c70893d95c8cac02e7edd1a9af87f2c8745b772d529f08b7f9dafbe98606 + build: hb77b528_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + constrains: + - pulseaudio 16.1 *_5 + license: LGPL-2.1-or-later + license_family: LGPL + size: 754844 + timestamp: 1693928953742 +- platform: linux-64 + name: pure_eval + version: 0.2.2 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14551 + timestamp: 1642876055775 + purls: + - pkg:pypi/pure-eval +- platform: win-64 + name: pure_eval + version: 0.2.2 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14551 + timestamp: 1642876055775 + purls: + - pkg:pypi/pure-eval +- platform: linux-64 + name: pycodestyle + version: 2.11.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.11.1-pyhd8ed1ab_0.conda + hash: + md5: 29ff12b36df16bb66fdccd4206aaebfb + sha256: 1bd1199c16514cfbc92c0fdc143a00fc55a3deaf800a62a09ac79294606e567e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 34318 + timestamp: 1697203012487 + purls: + - pkg:pypi/pycodestyle +- platform: win-64 + name: pycodestyle + version: 2.11.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.11.1-pyhd8ed1ab_0.conda + hash: + md5: 29ff12b36df16bb66fdccd4206aaebfb + sha256: 1bd1199c16514cfbc92c0fdc143a00fc55a3deaf800a62a09ac79294606e567e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 34318 + timestamp: 1697203012487 + purls: + - pkg:pypi/pycodestyle +- platform: linux-64 + name: pyfftw + version: 0.13.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - numpy >=1.21.6,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/pyfftw-0.13.1-py310h0a54255_0.conda + hash: + md5: 855368dca3d9345264f49f9180172bb0 + sha256: 16f123842f2c76f926da6427b700938ff32afb2e4e6e3dbbbab8bd932a184cd2 + build: py310h0a54255_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD or GPL 2 + size: 2110868 + timestamp: 1673618327589 +- platform: win-64 + name: pyfftw + version: 0.13.1 + category: main + manager: conda + dependencies: + - fftw >=3.3.10,<4.0a0 + - numpy >=1.21.6,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pyfftw-0.13.1-py310ha9ca8c9_0.conda + hash: + md5: 073f881de11f54d54d2140faa8df1427 + sha256: 42082a7ccd6e9235a3cea16df6d687362b591a450a3170aa7881c5abda14b05c + build: py310ha9ca8c9_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD or GPL 2 + size: 122123 + timestamp: 1673618676156 +- platform: linux-64 + name: pygments + version: 2.17.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 860425 + timestamp: 1700608076927 + purls: + - pkg:pypi/pygments +- platform: win-64 + name: pygments + version: 2.17.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 860425 + timestamp: 1700608076927 + purls: + - pkg:pypi/pygments +- platform: linux-64 + name: pymech + version: 1.5.0 + category: main + manager: pypi + requires_dist: + - numpy + - xarray !=0.20.0, !=0.20.1, >=0.19.0 + - attrs >=21.4.0 + - importlib-metadata <5.0.0 ; python_version < '3.8' + - sphinx ; extra == 'dev' + - furo ; extra == 'dev' + - sphinx-autobuild ; extra == 'dev' + - sphinx-copybutton ; extra == 'dev' + - sphinx-inline-tabs ; extra == 'dev' + - myst-nb ; extra == 'dev' + - matplotlib ; extra == 'dev' + - asv >=0.5.1 ; extra == 'dev' + - rich ; extra == 'dev' + - dask ; extra == 'dev' + - numpy >=1.18 ; extra == 'dev' + - coverage[toml] ; extra == 'dev' + - pytest >=6.2.5 ; extra == 'dev' + - pytest-cov >=3.0.0 ; extra == 'dev' + - pytest-xdist >=2.4.0 ; extra == 'dev' + - typing-extensions ; extra == 'dev' + - mypy ; extra == 'dev' + - nox ; extra == 'dev' + - pre-commit ; extra == 'dev' + - pyperf ; extra == 'dev' + - virtualenv ; extra == 'dev' + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-autobuild ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - myst-nb ; extra == 'docs' + - matplotlib ; extra == 'docs' + - asv >=0.5.1 ; extra == 'docs' + - rich ; extra == 'full' + - dask ; extra == 'full' + - numpy >=1.18 ; extra == 'full' + - mayavi ; extra == 'full' + - rich ; extra == 'opt' + - dask ; extra == 'opt' + - numpy >=1.18 ; extra == 'opt' + - rich ; extra == 'tests' + - dask ; extra == 'tests' + - numpy >=1.18 ; extra == 'tests' + - coverage[toml] ; extra == 'tests' + - pytest >=6.2.5 ; extra == 'tests' + - pytest-cov >=3.0.0 ; extra == 'tests' + - pytest-xdist >=2.4.0 ; extra == 'tests' + - typing-extensions ; extra == 'types' + - mypy ; extra == 'types' + - mayavi ; extra == 'vtk' + requires_python: '>=3.7' + url: https://files.pythonhosted.org/packages/60/b3/36de2dc9e303697b7986f59e5ce744cfcb23e2527d076a4f1a13af7581ba/pymech-1.5.0-py3-none-any.whl#sha256=5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 + hash: + md5: null + sha256: 5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 +- platform: win-64 + name: pymech + version: 1.5.0 + category: main + manager: pypi + requires_dist: + - numpy + - xarray !=0.20.0, !=0.20.1, >=0.19.0 + - attrs >=21.4.0 + - importlib-metadata <5.0.0 ; python_version < '3.8' + - sphinx ; extra == 'dev' + - furo ; extra == 'dev' + - sphinx-autobuild ; extra == 'dev' + - sphinx-copybutton ; extra == 'dev' + - sphinx-inline-tabs ; extra == 'dev' + - myst-nb ; extra == 'dev' + - matplotlib ; extra == 'dev' + - asv >=0.5.1 ; extra == 'dev' + - rich ; extra == 'dev' + - dask ; extra == 'dev' + - numpy >=1.18 ; extra == 'dev' + - coverage[toml] ; extra == 'dev' + - pytest >=6.2.5 ; extra == 'dev' + - pytest-cov >=3.0.0 ; extra == 'dev' + - pytest-xdist >=2.4.0 ; extra == 'dev' + - typing-extensions ; extra == 'dev' + - mypy ; extra == 'dev' + - nox ; extra == 'dev' + - pre-commit ; extra == 'dev' + - pyperf ; extra == 'dev' + - virtualenv ; extra == 'dev' + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-autobuild ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - myst-nb ; extra == 'docs' + - matplotlib ; extra == 'docs' + - asv >=0.5.1 ; extra == 'docs' + - rich ; extra == 'full' + - dask ; extra == 'full' + - numpy >=1.18 ; extra == 'full' + - mayavi ; extra == 'full' + - rich ; extra == 'opt' + - dask ; extra == 'opt' + - numpy >=1.18 ; extra == 'opt' + - rich ; extra == 'tests' + - dask ; extra == 'tests' + - numpy >=1.18 ; extra == 'tests' + - coverage[toml] ; extra == 'tests' + - pytest >=6.2.5 ; extra == 'tests' + - pytest-cov >=3.0.0 ; extra == 'tests' + - pytest-xdist >=2.4.0 ; extra == 'tests' + - typing-extensions ; extra == 'types' + - mypy ; extra == 'types' + - mayavi ; extra == 'vtk' + requires_python: '>=3.7' + url: https://files.pythonhosted.org/packages/60/b3/36de2dc9e303697b7986f59e5ce744cfcb23e2527d076a4f1a13af7581ba/pymech-1.5.0-py3-none-any.whl#sha256=5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 + hash: + md5: null + sha256: 5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 +- platform: linux-64 + name: pyparsing + version: 3.1.1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.1-pyhd8ed1ab_0.conda + hash: + md5: 176f7d56f0cfe9008bdf1bccd7de02fb + sha256: 4a1332d634b6c2501a973655d68f08c9c42c0bd509c349239127b10572b8354b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 89521 + timestamp: 1690737983548 + purls: + - pkg:pypi/pyparsing +- platform: win-64 + name: pyparsing + version: 3.1.1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.1-pyhd8ed1ab_0.conda + hash: + md5: 176f7d56f0cfe9008bdf1bccd7de02fb + sha256: 4a1332d634b6c2501a973655d68f08c9c42c0bd509c349239127b10572b8354b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 89521 + timestamp: 1690737983548 + purls: + - pkg:pypi/pyparsing +- platform: linux-64 + name: pyproject-metadata + version: 0.7.1 + category: main + manager: conda + dependencies: + - packaging >=19.0 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pyproject-metadata-0.7.1-pyhd8ed1ab_0.conda + hash: + md5: dcb27826ffc94d5f04e241322239983b + sha256: 9ec35cffa163f587aeb52d1603df8374659e3be30dbc6db0e980ecb797f21fee + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 12538 + timestamp: 1675133341609 + purls: + - pkg:pypi/pyproject-metadata +- platform: win-64 + name: pyproject-metadata + version: 0.7.1 + category: main + manager: conda + dependencies: + - packaging >=19.0 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pyproject-metadata-0.7.1-pyhd8ed1ab_0.conda + hash: + md5: dcb27826ffc94d5f04e241322239983b + sha256: 9ec35cffa163f587aeb52d1603df8374659e3be30dbc6db0e980ecb797f21fee + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 12538 + timestamp: 1675133341609 + purls: + - pkg:pypi/pyproject-metadata +- platform: linux-64 + name: pyqt + version: 5.15.9 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - pyqt5-sip 12.12.2 py310hc6cd4ac_5 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - qt-main >=5.15.8,<5.16.0a0 + - sip >=6.7.11,<6.8.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.15.9-py310h04931ad_5.conda + hash: + md5: f4fe7a6e3d7c78c9de048ea9dda21690 + sha256: 92fe1c9eda6be7879ba798066016c1065047cc13d730105f5109835cbfeae8f1 + build: py310h04931ad_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + license: GPL-3.0-only + license_family: GPL + size: 5282574 + timestamp: 1695420653225 + purls: + - pkg:pypi/pyqt5 +- platform: win-64 + name: pyqt + version: 5.15.9 + category: main + manager: conda + dependencies: + - pyqt5-sip 12.12.2 py310h00ffb61_5 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - qt-main >=5.15.8,<5.16.0a0 + - sip >=6.7.11,<6.8.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pyqt-5.15.9-py310h1fd54f2_5.conda + hash: + md5: 5df867d89a0482ea3591fe61f1558781 + sha256: 3aa9660d4b0c2db725bbad77840ac17180c5093617c34aa9467276dbac2d19e4 + build: py310h1fd54f2_5 + arch: x86_64 + subdir: win-64 + build_number: 5 + license: GPL-3.0-only + license_family: GPL + size: 3881331 + timestamp: 1695421370903 + purls: + - pkg:pypi/pyqt5 +- platform: linux-64 + name: pyqt5-sip + version: 12.12.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - packaging + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - sip + - toml + url: https://conda.anaconda.org/conda-forge/linux-64/pyqt5-sip-12.12.2-py310hc6cd4ac_5.conda + hash: + md5: ef5333594a958b25912002886b82b253 + sha256: a6aec078683ed3cf1650b7c47e3f0fe185015d54ea37fe76b9f31f05e1fd087d + build: py310hc6cd4ac_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + license: GPL-3.0-only + license_family: GPL + size: 84579 + timestamp: 1695418069976 +- platform: win-64 + name: pyqt5-sip + version: 12.12.2 + category: main + manager: conda + dependencies: + - packaging + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - sip + - toml + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pyqt5-sip-12.12.2-py310h00ffb61_5.conda + hash: + md5: bf433b3dde7783aed71126051d1a5878 + sha256: 59cc61adf7563005c8d5d305539f3fbddf6fed0298d747cc0a93fba667191411 + build: py310h00ffb61_5 + arch: x86_64 + subdir: win-64 + build_number: 5 + license: GPL-3.0-only + license_family: GPL + size: 79787 + timestamp: 1695418575552 +- platform: linux-64 + name: pytest + version: 7.4.4 + category: main + manager: conda + dependencies: + - colorama + - exceptiongroup >=1.0.0rc8 + - iniconfig + - packaging + - pluggy >=0.12,<2.0 + - python >=3.7 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + hash: + md5: a9d145de8c5f064b5fa68fb34725d9f4 + sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - pytest-faulthandler >=2 + license: MIT + license_family: MIT + noarch: python + size: 244564 + timestamp: 1704035308916 + purls: + - pkg:pypi/pytest +- platform: win-64 + name: pytest + version: 7.4.4 + category: main + manager: conda + dependencies: + - colorama + - exceptiongroup >=1.0.0rc8 + - iniconfig + - packaging + - pluggy >=0.12,<2.0 + - python >=3.7 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + hash: + md5: a9d145de8c5f064b5fa68fb34725d9f4 + sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - pytest-faulthandler >=2 + license: MIT + license_family: MIT + noarch: python + size: 244564 + timestamp: 1704035308916 + purls: + - pkg:pypi/pytest +- platform: linux-64 + name: pytest-allclose + version: 1.0.0 + category: main + manager: pypi + requires_dist: + - numpy >=1.11 + - pytest + - nengo-sphinx-theme >=1.0 ; extra == 'all' + - sphinx ; extra == 'all' + - codespell ; extra == 'all' + - coverage >=4.3 ; extra == 'all' + - flake8 ; extra == 'all' + - gitlint ; extra == 'all' + - pylint ; extra == 'all' + - nengo-sphinx-theme >=1.0 ; extra == 'docs' + - sphinx ; extra == 'docs' + - codespell ; extra == 'tests' + - coverage >=4.3 ; extra == 'tests' + - flake8 ; extra == 'tests' + - gitlint ; extra == 'tests' + - pylint ; extra == 'tests' + requires_python: '>=3.5' + url: https://files.pythonhosted.org/packages/c2/95/afa083bad44faa65048a9fbc018e9bc1b40045d4232383e723a555cd8b7c/pytest_allclose-1.0.0-py3-none-any.whl#sha256=ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 + hash: + md5: null + sha256: ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 +- platform: win-64 + name: pytest-allclose + version: 1.0.0 + category: main + manager: pypi + requires_dist: + - numpy >=1.11 + - pytest + - nengo-sphinx-theme >=1.0 ; extra == 'all' + - sphinx ; extra == 'all' + - codespell ; extra == 'all' + - coverage >=4.3 ; extra == 'all' + - flake8 ; extra == 'all' + - gitlint ; extra == 'all' + - pylint ; extra == 'all' + - nengo-sphinx-theme >=1.0 ; extra == 'docs' + - sphinx ; extra == 'docs' + - codespell ; extra == 'tests' + - coverage >=4.3 ; extra == 'tests' + - flake8 ; extra == 'tests' + - gitlint ; extra == 'tests' + - pylint ; extra == 'tests' + requires_python: '>=3.5' + url: https://files.pythonhosted.org/packages/c2/95/afa083bad44faa65048a9fbc018e9bc1b40045d4232383e723a555cd8b7c/pytest_allclose-1.0.0-py3-none-any.whl#sha256=ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 + hash: + md5: null + sha256: ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 +- platform: linux-64 + name: pytest-cov + version: 4.1.0 + category: main + manager: conda + dependencies: + - coverage >=5.2.1 + - pytest >=4.6 + - python >=3.7 + - toml + url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 06eb685a3a0b146347a58dda979485da + sha256: f07d3b44cabbed7843de654c4a6990a08475ce3b708bb735c7da9842614586f2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 25436 + timestamp: 1684965001294 +- platform: win-64 + name: pytest-cov + version: 4.1.0 + category: main + manager: conda + dependencies: + - coverage >=5.2.1 + - pytest >=4.6 + - python >=3.7 + - toml + url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 06eb685a3a0b146347a58dda979485da + sha256: f07d3b44cabbed7843de654c4a6990a08475ce3b708bb735c7da9842614586f2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 25436 + timestamp: 1684965001294 +- platform: linux-64 + name: pytest-mock + version: 3.12.0 + category: main + manager: conda + dependencies: + - pytest >=5.0 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.12.0-pyhd8ed1ab_0.conda + hash: + md5: ac9fedc9a0c397f2318e82525491dd83 + sha256: 58d3bd93a0cf9b51ac105de1e01b1fcd1fcfa5993023b67658344e329b02d6e0 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 21672 + timestamp: 1697739717579 + purls: + - pkg:pypi/pytest-mock +- platform: win-64 + name: pytest-mock + version: 3.12.0 + category: main + manager: conda + dependencies: + - pytest >=5.0 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.12.0-pyhd8ed1ab_0.conda + hash: + md5: ac9fedc9a0c397f2318e82525491dd83 + sha256: 58d3bd93a0cf9b51ac105de1e01b1fcd1fcfa5993023b67658344e329b02d6e0 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 21672 + timestamp: 1697739717579 + purls: + - pkg:pypi/pytest-mock +- platform: linux-64 + name: python + version: 3.10.13 + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.13-hd12c33a_1_cpython.conda + hash: + md5: ed38140af93f81319ebc472fbcf16cca + sha256: 4234c8e301737aa245d12c8fb44a4128005795e42883977c29cca3f34c71a1eb + build: hd12c33a_1_cpython + arch: x86_64 + subdir: linux-64 + build_number: 1 + constrains: + - python_abi 3.10.* *_cp310 + license: Python-2.0 + size: 25670919 + timestamp: 1703347014418 +- platform: win-64 + name: python + version: 3.10.13 + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - vc >=14.1,<15 + - vc14_runtime >=14.16.27033 + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.10.13-h4de0772_1_cpython.conda + hash: + md5: 2466ed12bf4a033d0ae05981d24b535e + sha256: 52e7c6569af0fc1fe63b7b5c23c0fb90d84dbff7a96224ea34c805ff1c5cf156 + build: h4de0772_1_cpython + arch: x86_64 + subdir: win-64 + build_number: 1 + constrains: + - python_abi 3.10.* *_cp310 + license: Python-2.0 + size: 15919030 + timestamp: 1703345531924 +- platform: linux-64 + name: python-dateutil + version: 2.8.2 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.5 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 245987 + timestamp: 1626286448716 + purls: + - pkg:pypi/python-dateutil +- platform: win-64 + name: python-dateutil + version: 2.8.2 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.5 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 245987 + timestamp: 1626286448716 + purls: + - pkg:pypi/python-dateutil +- platform: linux-64 + name: python-fastjsonschema + version: 2.19.1 + category: main + manager: conda + dependencies: + - python >=3.3 + url: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.19.1-pyhd8ed1ab_0.conda + hash: + md5: 4d3ceee3af4b0f9a1f48f57176bf8625 + sha256: 38b2db169d65cc5595e3ce63294c4fdb6a242ecf71f70b3ad8cad3bd4230d82f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 225250 + timestamp: 1703781171097 + purls: + - pkg:pypi/fastjsonschema +- platform: win-64 + name: python-fastjsonschema + version: 2.19.1 + category: main + manager: conda + dependencies: + - python >=3.3 + url: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.19.1-pyhd8ed1ab_0.conda + hash: + md5: 4d3ceee3af4b0f9a1f48f57176bf8625 + sha256: 38b2db169d65cc5595e3ce63294c4fdb6a242ecf71f70b3ad8cad3bd4230d82f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 225250 + timestamp: 1703781171097 + purls: + - pkg:pypi/fastjsonschema +- platform: linux-64 + name: python-tzdata + version: '2023.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + hash: + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 146007 + timestamp: 1703878849208 + purls: + - pkg:pypi/tzdata +- platform: win-64 + name: python-tzdata + version: '2023.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + hash: + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 146007 + timestamp: 1703878849208 + purls: + - pkg:pypi/tzdata +- platform: linux-64 + name: python_abi + version: '3.10' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + hash: + md5: 26322ec5d7712c3ded99dd656142b8ce + sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + build: 4_cp310 + arch: x86_64 + subdir: linux-64 + build_number: 4 + constrains: + - python 3.10.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6398 + timestamp: 1695147363189 +- platform: win-64 + name: python_abi + version: '3.10' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.10-4_cp310.conda + hash: + md5: b41195997c14fb7473d26637ea4c3946 + sha256: 19066c462fd0e32c64503c688f77cb603beb4019b812caf855d03f2a5447960b + build: 4_cp310 + arch: x86_64 + subdir: win-64 + build_number: 4 + constrains: + - python 3.10.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6773 + timestamp: 1695147715814 +- platform: linux-64 + name: pythran + version: 0.15.0 + category: main + manager: conda + dependencies: + - beniget 0.4.* + - colorlog + - decorator + - gast 0.5.* + - gxx_linux-64 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - numpy >=1.22.4,<2.0a0 + - ply >=3.4 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/pythran-0.15.0-py310hcb52e73_1.conda + hash: + md5: be93e45e65a4c7fdacac7bc119d013f5 + sha256: 6f9676819520308840998cbde404a344f8e2aa48809cb9b8df82f5ccddeda630 + build: py310hcb52e73_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 2200877 + timestamp: 1704695185687 +- platform: win-64 + name: pythran + version: 0.15.0 + category: main + manager: conda + dependencies: + - beniget 0.4.* + - clang + - clangxx + - colorlog + - decorator + - gast 0.5.* + - numpy >=1.22.4,<2.0a0 + - ply >=3.4 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/win-64/pythran-0.15.0-py310h3bcd3f7_1.conda + hash: + md5: c2b07b84cb77f5324a1ba2ebc0f8908b + sha256: d0ed8c8b4c89b68905a9da7a19491f70e1c6b9a5a958b72b2b00245b874f8e7b + build: py310h3bcd3f7_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 2225052 + timestamp: 1704695632909 +- platform: linux-64 + name: pytz + version: 2023.3.post1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 187454 + timestamp: 1693930444432 + purls: + - pkg:pypi/pytz +- platform: win-64 + name: pytz + version: 2023.3.post1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + hash: + md5: c93346b446cd08c169d843ae5fc0da97 + sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 187454 + timestamp: 1693930444432 + purls: + - pkg:pypi/pytz +- platform: linux-64 + name: pywavelets + version: 1.4.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py310h1f7b6fc_1.conda + hash: + md5: be6f0382440ccbf9fb01bb19ab1f1fc0 + sha256: 2aa5da771dd7e4ec8316de51edd7aefcb6f688f7e4d2a2905faac76462826cf7 + build: py310h1f7b6fc_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 3689326 + timestamp: 1695567803832 + purls: + - pkg:pypi/pywavelets +- platform: win-64 + name: pywavelets + version: 1.4.1 + category: main + manager: conda + dependencies: + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pywavelets-1.4.1-py310h3e78b6c_1.conda + hash: + md5: 9dfe95c9d95172e888f612aeffcb13a8 + sha256: b31e156a15a8bf86313e0fd0a26ed7beaab823da9604894448e96bd7df53dcd7 + build: py310h3e78b6c_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: MIT + license_family: MIT + size: 3547104 + timestamp: 1695568130734 + purls: + - pkg:pypi/pywavelets +- platform: win-64 + name: pywin32 + version: '306' + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/pywin32-306-py310h00ffb61_2.conda + hash: + md5: a65056c5f52aa83455577958872e4776 + sha256: 24fd15c118974da18c38870380195e633d2452a7fb7dbc0ecb96b44416989b33 + build: py310h00ffb61_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: PSF-2.0 + license_family: PSF + size: 5689476 + timestamp: 1695974437046 +- platform: linux-64 + name: qt-main + version: 5.15.8 + category: main + manager: conda + dependencies: + - __glibc >=2.17,<3.0.a0 + - alsa-lib >=1.2.10,<1.2.11.0a0 + - dbus >=1.13.6,<2.0a0 + - fontconfig >=2.14.2,<3.0a0 + - fonts-conda-ecosystem + - freetype >=2.12.1,<3.0a0 + - gst-plugins-base >=1.22.7,<1.23.0a0 + - gstreamer >=1.22.7,<1.23.0a0 + - harfbuzz >=8.3.0,<9.0a0 + - icu >=73.2,<74.0a0 + - krb5 >=1.21.2,<1.22.0a0 + - libclang >=15.0.7,<16.0a0 + - libclang13 >=15.0.7 + - libcups >=2.3.3,<2.4.0a0 + - libevent >=2.1.12,<2.1.13.0a0 + - libexpat >=2.5.0,<3.0a0 + - libgcc-ng >=12 + - libglib >=2.78.3,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libpq >=16.1,<17.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libstdcxx-ng >=12 + - libxcb >=1.15,<1.16.0a0 + - libxkbcommon >=1.6.0,<2.0a0 + - libxml2 >=2.12.2,<2.13.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - mysql-libs >=8.0.33,<8.1.0a0 + - nspr >=4.35,<5.0a0 + - nss >=3.95,<4.0a0 + - openssl >=3.2.0,<4.0a0 + - pulseaudio-client >=16.1,<16.2.0a0 + - xcb-util >=0.4.0,<0.5.0a0 + - xcb-util-image >=0.4.0,<0.5.0a0 + - xcb-util-keysyms >=0.4.0,<0.5.0a0 + - xcb-util-renderutil >=0.3.9,<0.4.0a0 + - xcb-util-wm >=0.4.1,<0.5.0a0 + - xorg-libice >=1.1.1,<2.0a0 + - xorg-libsm >=1.2.4,<2.0a0 + - xorg-libx11 >=1.8.7,<2.0a0 + - xorg-libxext >=1.3.4,<2.0a0 + - xorg-xf86vidmodeproto + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/qt-main-5.15.8-h450f30e_18.conda + hash: + md5: ef0430f8df5dcdedcaaab340b228f30c + sha256: 30b534076fb358dfce1f5bdfddc609198b36fcb27ab8c1e63815c539933de778 + build: h450f30e_18 + arch: x86_64 + subdir: linux-64 + build_number: 18 + constrains: + - qt 5.15.8 + license: LGPL-3.0-only + license_family: LGPL + size: 61252089 + timestamp: 1702358560587 +- platform: win-64 + name: qt-main + version: 5.15.8 + category: main + manager: conda + dependencies: + - gst-plugins-base >=1.22.7,<1.23.0a0 + - gstreamer >=1.22.7,<1.23.0a0 + - icu >=73.2,<74.0a0 + - krb5 >=1.21.2,<1.22.0a0 + - libclang >=15.0.7,<16.0a0 + - libclang13 >=15.0.7 + - libglib >=2.78.3,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/qt-main-5.15.8-h9e85ed6_18.conda + hash: + md5: 8427460072b90560c0675c37c30386ef + sha256: f23d02b09e52fb2d65d0c94c267bce0b663c0f9931a86bec36af0c6c22aa87e3 + build: h9e85ed6_18 + arch: x86_64 + subdir: win-64 + build_number: 18 + constrains: + - qt 5.15.8 + license: LGPL-3.0-only + license_family: LGPL + size: 60810492 + timestamp: 1702363181480 +- platform: linux-64 + name: qtpy + version: 2.4.1 + category: main + manager: conda + dependencies: + - packaging + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 7f391bd70d2abfb70f304ba5aa4e1261 + sha256: 925bf48e747af6ceff1b073c10b12fc94ef79c88a34729059d253e43466a33f1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 61808 + timestamp: 1698112171285 + purls: + - pkg:pypi/qtpy +- platform: win-64 + name: qtpy + version: 2.4.1 + category: main + manager: conda + dependencies: + - packaging + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 7f391bd70d2abfb70f304ba5aa4e1261 + sha256: 925bf48e747af6ceff1b073c10b12fc94ef79c88a34729059d253e43466a33f1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 61808 + timestamp: 1698112171285 + purls: + - pkg:pypi/qtpy +- platform: linux-64 + name: rav1e + version: 0.6.6 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/rav1e-0.6.6-he8a937b_2.conda + hash: + md5: 77d9955b4abddb811cb8ab1aa7d743e4 + sha256: 91b3c1ced90d04ee2eded1f72cf3cbc19ff05a25e41876ef0758266a5bab009f + build: he8a937b_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 15423721 + timestamp: 1694329261357 +- platform: win-64 + name: rav1e + version: 0.6.6 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/rav1e-0.6.6-h975169c_2.conda + hash: + md5: bd32cc2ed62374932f9d57a2e3eb2863 + sha256: 3193451440e5ac737b7d5d2a79f9e012d426c0c53e41e60df4992150bfc39565 + build: h975169c_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 1523119 + timestamp: 1694330157594 +- platform: linux-64 + name: readline + version: '8.2' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + build: h8228510_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: GPL-3.0-only + license_family: GPL + size: 281456 + timestamp: 1679532220005 +- platform: linux-64 + name: referencing + version: 0.32.1 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - python >=3.8 + - rpds-py >=0.7.0 + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.1-pyhd8ed1ab_0.conda + hash: + md5: 753a592b4e99d7d2cde6a8fd0797f414 + sha256: 658beff40c6355af0eeec624bbe4e892b4c68c0af2d8ff4c06677e6547140506 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 39009 + timestamp: 1704489374195 + purls: + - pkg:pypi/referencing +- platform: win-64 + name: referencing + version: 0.32.1 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - python >=3.8 + - rpds-py >=0.7.0 + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.1-pyhd8ed1ab_0.conda + hash: + md5: 753a592b4e99d7d2cde6a8fd0797f414 + sha256: 658beff40c6355af0eeec624bbe4e892b4c68c0af2d8ff4c06677e6547140506 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 39009 + timestamp: 1704489374195 + purls: + - pkg:pypi/referencing +- platform: linux-64 + name: rich + version: 13.7.0 + category: main + manager: conda + dependencies: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.7.0 + - typing_extensions >=4.0.0,<5.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.0-pyhd8ed1ab_0.conda + hash: + md5: d7a11d4f3024b2f4a6e0ae7377dd61e9 + sha256: 4bb25bf1f5664772b2c4c2e3878aa6e7dc2695f97e3da4ee8e47c51e179913bb + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 184071 + timestamp: 1700160247583 +- platform: win-64 + name: rich + version: 13.7.0 + category: main + manager: conda + dependencies: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.7.0 + - typing_extensions >=4.0.0,<5.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.0-pyhd8ed1ab_0.conda + hash: + md5: d7a11d4f3024b2f4a6e0ae7377dd61e9 + sha256: 4bb25bf1f5664772b2c4c2e3878aa6e7dc2695f97e3da4ee8e47c51e179913bb + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 184071 + timestamp: 1700160247583 +- platform: linux-64 + name: rpds-py + version: 0.16.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py310hcb5633a_0.conda + hash: + md5: 849507c9b0652ec09c110bcc5213f482 + sha256: ebd8fb3040ec0ba40fe72da8136b847edd6f878a8f6862e534165d721a8af0d8 + build: py310hcb5633a_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 998423 + timestamp: 1703822841816 + purls: + - pkg:pypi/rpds-py +- platform: win-64 + name: rpds-py + version: 0.17.1 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.17.1-py310h87d50f1_0.conda + hash: + md5: 22af9f9d3724a616d896d4bb07178b64 + sha256: 7804305d363abf10f9c35c2054c30a798212bbc1704375271e3ed1c5212aa4b1 + build: py310h87d50f1_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 206661 + timestamp: 1705160783995 + purls: + - pkg:pypi/rpds-py +- platform: linux-64 + name: scikit-image + version: 0.22.0 + category: main + manager: conda + dependencies: + - imageio >=2.27 + - lazy_loader >=0.2 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - networkx >=2.8 + - numpy >=1.22.4,<2.0a0 + - packaging >=21 + - pillow >=9.0.1 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - pywavelets >=1.1.1 + - scipy >=1.8 + - tifffile >=2022.8.12 + url: https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.22.0-py310hcc13569_2.conda + hash: + md5: 801b47c8f5ecc81eb2cd5083197e5a19 + sha256: dcb6cc7c27dfa8aa041ff7a9c237898bc82cc116f1e16665ee573d70a84df1f4 + build: py310hcc13569_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + constrains: + - astropy >=5.0 + - pooch >=1.6.0 + - dask-core >=2021.1.0 + - cloudpickle >=0.2.1 + - scikit-learn >=1.0 + - cytoolz >=0.11.0 + - matplotlib-base >=3.5 + - toolz >=0.10.0 + license: BSD-3-Clause + license_family: BSD + size: 10783294 + timestamp: 1697029221996 + purls: + - pkg:pypi/scikit-image +- platform: win-64 + name: scikit-image + version: 0.22.0 + category: main + manager: conda + dependencies: + - imageio >=2.27 + - lazy_loader >=0.2 + - networkx >=2.8 + - numpy >=1.22.4,<2.0a0 + - packaging >=21 + - pillow >=9.0.1 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - pywavelets >=1.1.1 + - scipy >=1.8 + - tifffile >=2022.8.12 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/scikit-image-0.22.0-py310hecd3228_2.conda + hash: + md5: 1046aff055350155ba8ea0780ab8b113 + sha256: c86cffbaca12712ca6f9b1bcd2069a7d673a504f1d287702a618faa10fc88714 + build: py310hecd3228_2 + arch: x86_64 + subdir: win-64 + build_number: 2 + constrains: + - pooch >=1.6.0 + - dask-core >=2021.1.0 + - astropy >=5.0 + - toolz >=0.10.0 + - cloudpickle >=0.2.1 + - matplotlib-base >=3.5 + - scikit-learn >=1.0 + - cytoolz >=0.11.0 + license: BSD-3-Clause + license_family: BSD + size: 9988125 + timestamp: 1697029819029 + purls: + - pkg:pypi/scikit-image +- platform: linux-64 + name: scipy + version: 1.11.4 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - numpy >=1.22.4,<1.28 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py310hb13e2d6_0.conda + hash: + md5: f0063b2885bfae11324a00a693f88781 + sha256: d465ffa50c22c0ce7472831abbb01f10411bb62d2ee3b493ff3fe3dc214765cb + build: py310hb13e2d6_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 15254417 + timestamp: 1700813355821 +- platform: win-64 + name: scipy + version: 1.11.4 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - numpy >=1.22.4,<1.28 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py310hf667824_0.conda + hash: + md5: b8b12cba10231b68dd802a9b6e262c54 + sha256: 34db915d0815a9368ea950e9d31a30b01e1ba395953295cdd1224a59a7cb5a3e + build: py310hf667824_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 14186301 + timestamp: 1700814640256 +- platform: linux-64 + name: setuptools + version: 69.0.3 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 470548 + timestamp: 1704224855187 + purls: + - pkg:pypi/setuptools +- platform: win-64 + name: setuptools + version: 69.0.3 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 470548 + timestamp: 1704224855187 + purls: + - pkg:pypi/setuptools +- platform: linux-64 + name: sip + version: 6.7.12 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - packaging + - ply + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tomli + url: https://conda.anaconda.org/conda-forge/linux-64/sip-6.7.12-py310hc6cd4ac_0.conda + hash: + md5: 68d5bfccaba2d89a7812098dd3966d9b + sha256: 4c350a7ed9f5fd98196a50bc74ce1dc3bb05b0c90d17ea120439755fe2075796 + build: py310hc6cd4ac_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: GPL-3.0-only + license_family: GPL + size: 494293 + timestamp: 1697300616950 + purls: + - pkg:pypi/sip +- platform: win-64 + name: sip + version: 6.7.12 + category: main + manager: conda + dependencies: + - packaging + - ply + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tomli + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/sip-6.7.12-py310h00ffb61_0.conda + hash: + md5: 882ddccbb0d5c47da05eb35ec4813c16 + sha256: 159f95e125ff48fa84cfbff8ef7ccfe14b6960df108b6c1d3472d0248bb07781 + build: py310h00ffb61_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: GPL-3.0-only + license_family: GPL + size: 504474 + timestamp: 1697300911843 + purls: + - pkg:pypi/sip +- platform: linux-64 + name: six + version: 1.16.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + build: pyh6c4a22f_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14259 + timestamp: 1620240338595 + purls: + - pkg:pypi/six +- platform: win-64 + name: six + version: 1.16.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + build: pyh6c4a22f_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14259 + timestamp: 1620240338595 + purls: + - pkg:pypi/six +- platform: linux-64 + name: snappy + version: 1.1.10 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.1.10-h9fff704_0.conda + hash: + md5: e6d228cd0bb74a51dd18f5bfce0b4115 + sha256: 02219f2382b4fe39250627dade087a4412d811936a5a445636b7260477164eac + build: h9fff704_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 38865 + timestamp: 1678534590321 +- platform: win-64 + name: snappy + version: 1.1.10 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/snappy-1.1.10-hfb803bf_0.conda + hash: + md5: cff1df79c9cff719460eb2dd172568de + sha256: 2a195b38cb63f03ad9f73a82db52434ebefe216fb70f7ea3defe4ddf263d408a + build: hfb803bf_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 57065 + timestamp: 1678534804734 +- platform: linux-64 + name: stack_data + version: 0.6.2 + category: main + manager: conda + dependencies: + - asttokens + - executing + - pure_eval + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 26205 + timestamp: 1669632203115 + purls: + - pkg:pypi/stack-data +- platform: win-64 + name: stack_data + version: 0.6.2 + category: main + manager: conda + dependencies: + - asttokens + - executing + - pure_eval + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 26205 + timestamp: 1669632203115 + purls: + - pkg:pypi/stack-data +- platform: linux-64 + name: svt-av1 + version: 1.8.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/svt-av1-1.8.0-h59595ed_0.conda + hash: + md5: a9fb862e9d3beb0ebc61c10806056a7d + sha256: 6d64facdcdaadc5a3e5e4382ee195b4fde3c84ae3d4156fdd9b78ba7de358ba7 + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 2644060 + timestamp: 1702359203835 +- platform: win-64 + name: svt-av1 + version: 1.7.0 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/svt-av1-1.7.0-h63175ca_0.conda + hash: + md5: fe5d2314e6fc3be8f8e3e2e73c14ab02 + sha256: 3d52d959e9b4e4654c36d03765fb4e8dbebfc1d17f271a46033bf301737a25cc + build: h63175ca_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 2353906 + timestamp: 1692967156046 +- platform: linux-64 + name: sysroot_linux-64 + version: '2.12' + category: main + manager: conda + dependencies: + - kernel-headers_linux-64 2.6.32 he073ed8_16 + url: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.12-he073ed8_16.conda + hash: + md5: 071ea8dceff4d30ac511f4a2f8437cd1 + sha256: 4c024b2eee24c6da7d3e08723111ec02665c578844c5b3e9e6b38f89000bec41 + build: he073ed8_16 + arch: x86_64 + subdir: linux-64 + build_number: 16 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + license_family: GPL + noarch: generic + size: 15277813 + timestamp: 1689214980563 +- platform: win-64 + name: tbb + version: 2021.11.0 + category: main + manager: conda + dependencies: + - libhwloc >=2.9.3,<2.9.4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_0.conda + hash: + md5: 517c08eba817fb0e56cfd411ed198261 + sha256: aca5b239ed784161ba98809bcf06f67cc46773a09f5b94da8246d982f8d65a49 + build: h91493d7_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 160300 + timestamp: 1702027823313 +- platform: linux-64 + name: tifffile + version: 2023.12.9 + category: main + manager: conda + dependencies: + - imagecodecs >=2023.8.12 + - numpy >=1.19.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.12.9-pyhd8ed1ab_0.conda + hash: + md5: 454bc0aff84f35fa53ba9e0369737a9b + sha256: 4786325cea8790d0b19d52ae575afd640fc8a5000fb75470edb7fcf00647dbbd + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - matplotlib-base >=3.3 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 176544 + timestamp: 1702206356203 + purls: + - pkg:pypi/tifffile +- platform: win-64 + name: tifffile + version: 2023.12.9 + category: main + manager: conda + dependencies: + - imagecodecs >=2023.8.12 + - numpy >=1.19.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.12.9-pyhd8ed1ab_0.conda + hash: + md5: 454bc0aff84f35fa53ba9e0369737a9b + sha256: 4786325cea8790d0b19d52ae575afd640fc8a5000fb75470edb7fcf00647dbbd + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - matplotlib-base >=3.3 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 176544 + timestamp: 1702206356203 + purls: + - pkg:pypi/tifffile +- platform: linux-64 + name: tk + version: 8.6.13 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + hash: + md5: d453b98d9c83e71da0741bb0ff4d76bc + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + build: noxft_h4845f30_101 + arch: x86_64 + subdir: linux-64 + build_number: 101 + license: TCL + license_family: BSD + size: 3318875 + timestamp: 1699202167581 +- platform: win-64 + name: tk + version: 8.6.13 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + hash: + md5: fc048363eb8f03cd1737600a5d08aafe + sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1 + build: h5226925_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: TCL + license_family: BSD + size: 3503410 + timestamp: 1699202577803 +- platform: linux-64 + name: toml + version: 0.10.2 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18433 + timestamp: 1604308660817 + purls: + - pkg:pypi/toml +- platform: win-64 + name: toml + version: 0.10.2 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18433 + timestamp: 1604308660817 + purls: + - pkg:pypi/toml +- platform: linux-64 + name: tomli + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 15940 + timestamp: 1644342331069 + purls: + - pkg:pypi/tomli +- platform: win-64 + name: tomli + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 15940 + timestamp: 1644342331069 + purls: + - pkg:pypi/tomli +- platform: linux-64 + name: tornado + version: 6.3.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.3.3-py310h2372a71_1.conda + hash: + md5: b23e0147fa5f7a9380e06334c7266ad5 + sha256: 209b6788b81739d3cdc2f04ad3f6f323efd85b1a30f2edce98ab76d98079fac8 + build: py310h2372a71_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: Apache-2.0 + license_family: Apache + size: 641597 + timestamp: 1695373710038 + purls: + - pkg:pypi/tornado +- platform: win-64 + name: tornado + version: 6.3.3 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/tornado-6.3.3-py310h8d17308_1.conda + hash: + md5: 0d14d73d94d679e2fa753ea8c7f75926 + sha256: 60b864e7cf17737055016e1754534316a0234d83f15eb454b983ee1b5151f982 + build: py310h8d17308_1 + arch: x86_64 + subdir: win-64 + build_number: 1 + license: Apache-2.0 + license_family: Apache + size: 644644 + timestamp: 1695373991492 + purls: + - pkg:pypi/tornado +- platform: linux-64 + name: traitlets + version: 5.14.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + hash: + md5: 1c6acfdc7ecbfe09954c4216da99c146 + sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 110329 + timestamp: 1704213177224 + purls: + - pkg:pypi/traitlets +- platform: win-64 + name: traitlets + version: 5.14.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + hash: + md5: 1c6acfdc7ecbfe09954c4216da99c146 + sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 110329 + timestamp: 1704213177224 + purls: + - pkg:pypi/traitlets +- platform: linux-64 + name: transonic + version: 0.5.3 + category: main + manager: conda + dependencies: + - astunparse + - autopep8 + - beniget + - gast + - numpy + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.5.3-pyhd8ed1ab_0.conda + hash: + md5: 433a1ca37756713ae8b4e5bd6d718509 + sha256: 20cf1e4a71778097e908dffe100b985b27c96c855a4b5f6ddcb8c49bc62df92e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: OTHER + noarch: python + size: 62217 + timestamp: 1692621180347 +- platform: win-64 + name: transonic + version: 0.5.3 + category: main + manager: conda + dependencies: + - astunparse + - autopep8 + - beniget + - gast + - numpy + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.5.3-pyhd8ed1ab_0.conda + hash: + md5: 433a1ca37756713ae8b4e5bd6d718509 + sha256: 20cf1e4a71778097e908dffe100b985b27c96c855a4b5f6ddcb8c49bc62df92e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: OTHER + noarch: python + size: 62217 + timestamp: 1692621180347 +- platform: linux-64 + name: typing_extensions + version: 4.9.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + build: pyha770c72_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 36058 + timestamp: 1702176292645 + purls: + - pkg:pypi/typing-extensions +- platform: win-64 + name: typing_extensions + version: 4.9.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + build: pyha770c72_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 36058 + timestamp: 1702176292645 + purls: + - pkg:pypi/typing-extensions +- platform: linux-64 + name: tzdata + version: 2023d + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + hash: + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + build: h0c530f3_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LicenseRef-Public-Domain + noarch: generic + size: 119639 + timestamp: 1703250910370 +- platform: win-64 + name: tzdata + version: 2023d + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + hash: + md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 + sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + build: h0c530f3_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LicenseRef-Public-Domain + noarch: generic + size: 119639 + timestamp: 1703250910370 +- platform: win-64 + name: ucrt + version: 10.0.22621.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + hash: + md5: 72608f6cd3e5898229c3ea16deb1ac43 + sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6 + build: h57928b3_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - vs2015_runtime >=14.29.30037 + license: LicenseRef-Proprietary + license_family: PROPRIETARY + size: 1283972 + timestamp: 1666630199266 +- platform: linux-64 + name: unicodedata2 + version: 15.1.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py310h2372a71_0.conda + hash: + md5: 72637c58d36d9475fda24700c9796f19 + sha256: 5ab2f2d4542ba0cc27d222c08ae61706babe7173b0c6dfa748aa37ff2fa9d824 + build: py310h2372a71_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 374055 + timestamp: 1695848183607 + purls: + - pkg:pypi/unicodedata2 +- platform: win-64 + name: unicodedata2 + version: 15.1.0 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py310h8d17308_0.conda + hash: + md5: f9f25aeb0eed2dd8c770f137c45da3c2 + sha256: 7beadca7de88d62b65124a98e0c442cef787dac2ac41768deb7200fd33d07603 + build: py310h8d17308_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 370116 + timestamp: 1695848575933 + purls: + - pkg:pypi/unicodedata2 +- platform: win-64 + name: vc + version: '14.3' + category: main + manager: conda + dependencies: + - vc14_runtime >=14.38.33130 + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-hcf57466_18.conda + hash: + md5: 20e1e652a4c740fa719002a8449994a2 + sha256: 447a8d8292a7b2107dcc18afb67f046824711a652725fc0f522c368e7a7b8318 + build: hcf57466_18 + arch: x86_64 + subdir: win-64 + build_number: 18 + track_features: vc14 + license: BSD-3-Clause + license_family: BSD + size: 16977 + timestamp: 1702511255313 +- platform: win-64 + name: vc14_runtime + version: 14.38.33130 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.38.33130-h82b7239_18.conda + hash: + md5: 8be79fdd2725ddf7bbf8a27a4c1f79ba + sha256: bf94c9af4b2e9cba88207001197e695934eadc96a5c5e4cd7597e950aae3d8ff + build: h82b7239_18 + arch: x86_64 + subdir: win-64 + build_number: 18 + constrains: + - vs2015_runtime 14.38.33130.* *_18 + license: LicenseRef-ProprietaryMicrosoft + license_family: Proprietary + size: 749868 + timestamp: 1702511239004 +- platform: win-64 + name: vs2015_runtime + version: 14.38.33130 + category: main + manager: conda + dependencies: + - vc14_runtime >=14.38.33130 + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda + hash: + md5: 10d42885e3ed84e575b454db30f1aa93 + sha256: a2fec221f361d6263c117f4ea6d772b21c90a2f8edc6f3eb0eadec6bfe8843db + build: hcb4865c_18 + arch: x86_64 + subdir: win-64 + build_number: 18 + license: BSD-3-Clause + license_family: BSD + size: 16988 + timestamp: 1702511261442 +- platform: linux-64 + name: wcwidth + version: 0.2.13 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + hash: + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 32709 + timestamp: 1704731373922 + purls: + - pkg:pypi/wcwidth +- platform: win-64 + name: wcwidth + version: 0.2.13 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + hash: + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 32709 + timestamp: 1704731373922 + purls: + - pkg:pypi/wcwidth +- platform: linux-64 + name: wheel + version: 0.42.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 57553 + timestamp: 1701013309664 + purls: + - pkg:pypi/wheel +- platform: win-64 + name: wheel + version: 0.42.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 57553 + timestamp: 1701013309664 + purls: + - pkg:pypi/wheel +- platform: linux-64 + name: xarray + version: 2023.12.0 + category: main + manager: conda + dependencies: + - numpy >=1.22 + - packaging >=21.3 + - pandas >=1.4 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.12.0-pyhd8ed1ab_0.conda + hash: + md5: e9b31d3ab1b0dd5fd8c24419f6560b90 + sha256: ab89b70aa3d31a9cacf0e91a7c7a6f8cc45d866d71cdcee1219561cff0e8a9a5 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + constrains: + - flox >=0.5 + - hdf5 >=1.12 + - iris >=3.2 + - h5netcdf >=1.0 + - h5py >=3.6 + - distributed >=2022.7 + - pint >=0.19 + - nc-time-axis >=1.4 + - scipy >=1.8 + - seaborn >=0.11 + - dask-core >=2022.7 + - netcdf4 >=1.6.0 + - numba >=0.55 + - bottleneck >=1.3 + - cartopy >=0.20 + - sparse >=0.13 + - zarr >=2.12 + - cftime >=1.6 + - toolz >=0.12 + - matplotlib-base >=3.5 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 724567 + timestamp: 1702073071866 + purls: + - pkg:pypi/xarray +- platform: win-64 + name: xarray + version: 2023.12.0 + category: main + manager: conda + dependencies: + - numpy >=1.22 + - packaging >=21.3 + - pandas >=1.4 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.12.0-pyhd8ed1ab_0.conda + hash: + md5: e9b31d3ab1b0dd5fd8c24419f6560b90 + sha256: ab89b70aa3d31a9cacf0e91a7c7a6f8cc45d866d71cdcee1219561cff0e8a9a5 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + constrains: + - flox >=0.5 + - hdf5 >=1.12 + - iris >=3.2 + - h5netcdf >=1.0 + - h5py >=3.6 + - distributed >=2022.7 + - pint >=0.19 + - nc-time-axis >=1.4 + - scipy >=1.8 + - seaborn >=0.11 + - dask-core >=2022.7 + - netcdf4 >=1.6.0 + - numba >=0.55 + - bottleneck >=1.3 + - cartopy >=0.20 + - sparse >=0.13 + - zarr >=2.12 + - cftime >=1.6 + - toolz >=0.12 + - matplotlib-base >=3.5 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 724567 + timestamp: 1702073071866 + purls: + - pkg:pypi/xarray +- platform: linux-64 + name: xcb-util + version: 0.4.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.13 + - libxcb >=1.15,<1.16.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.0-hd590300_1.conda + hash: + md5: 9bfac7ccd94d54fd21a0501296d60424 + sha256: 0c91d87f0efdaadd4e56a5f024f8aab20ec30f90aa2ce9e4ebea05fbc20f71ad + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 19728 + timestamp: 1684639166048 +- platform: linux-64 + name: xcb-util-image + version: 0.4.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.15,<1.16.0a0 + - xcb-util >=0.4.0,<0.5.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-h8ee46fc_1.conda + hash: + md5: 9d7bcddf49cbf727730af10e71022c73 + sha256: 92ffd68d2801dbc27afe223e04ae7e78ef605fc8575f107113c93c7bafbd15b0 + build: h8ee46fc_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 24474 + timestamp: 1684679894554 +- platform: linux-64 + name: xcb-util-keysyms + version: 0.4.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.15,<1.16.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.0-h8ee46fc_1.conda + hash: + md5: 632413adcd8bc16b515cab87a2932913 + sha256: 8451d92f25d6054a941b962179180728c48c62aab5bf20ac10fef713d5da6a9a + build: h8ee46fc_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 14186 + timestamp: 1684680497805 +- platform: linux-64 + name: xcb-util-renderutil + version: 0.3.9 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.13 + - libxcb >=1.15,<1.16.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.9-hd590300_1.conda + hash: + md5: e995b155d938b6779da6ace6c6b13816 + sha256: 6987588e6fff5892056021c2ea52f7a0deefb2c7348e70d24750e2d60dabf009 + build: hd590300_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 16955 + timestamp: 1684639112393 +- platform: linux-64 + name: xcb-util-wm + version: 0.4.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.15,<1.16.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.1-h8ee46fc_1.conda + hash: + md5: 90108a432fb5c6150ccfee3f03388656 + sha256: 08ba7147c7579249b6efd33397dc1a8c2404278053165aaecd39280fee705724 + build: h8ee46fc_1 + arch: x86_64 + subdir: linux-64 + build_number: 1 + license: MIT + license_family: MIT + size: 52114 + timestamp: 1684679248466 +- platform: linux-64 + name: xkeyboard-config + version: '2.40' + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - xorg-libx11 >=1.8.6,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.40-hd590300_0.conda + hash: + md5: 07c15d846a2e4d673da22cbd85fdb6d2 + sha256: a01fcb9c3346ee08aa24b3900a08896f2e8f80c891378a57d71764e16bbd6141 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 895713 + timestamp: 1696647097478 +- platform: linux-64 + name: xorg-kbproto + version: 1.0.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 + hash: + md5: 4b230e8381279d76131116660f5a241a + sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1 + build: h7f98852_1002 + arch: x86_64 + subdir: linux-64 + build_number: 1002 + license: MIT + license_family: MIT + size: 27338 + timestamp: 1610027759842 +- platform: linux-64 + name: xorg-libice + version: 1.1.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda + hash: + md5: b462a33c0be1421532f28bfe8f4a7514 + sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 58469 + timestamp: 1685307573114 +- platform: linux-64 + name: xorg-libsm + version: 1.2.4 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libuuid >=2.38.1,<3.0a0 + - xorg-libice >=1.1.1,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda + hash: + md5: 93ee23f12bc2e684548181256edd2cf6 + sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1 + build: h7391055_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 27433 + timestamp: 1685453649160 +- platform: linux-64 + name: xorg-libx11 + version: 1.8.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libxcb >=1.15,<1.16.0a0 + - xorg-kbproto + - xorg-xextproto >=7.3.0,<8.0a0 + - xorg-xproto + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.7-h8ee46fc_0.conda + hash: + md5: 49e482d882669206653b095f5206c05b + sha256: 7a02a7beac472ae2759498550b5fc5261bf5be7a9a2b4648a3f67818a7bfefcf + build: h8ee46fc_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 828692 + timestamp: 1697056910935 +- platform: linux-64 + name: xorg-libxau + version: 1.0.11 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda + hash: + md5: 2c80dc38fface310c9bd81b17037fee5 + sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 14468 + timestamp: 1684637984591 +- platform: win-64 + name: xorg-libxau + version: 1.0.11 + category: main + manager: conda + dependencies: + - m2w64-gcc-libs + - m2w64-gcc-libs-core + url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxau-1.0.11-hcd874cb_0.conda + hash: + md5: c46ba8712093cb0114404ae8a7582e1a + sha256: 8c5b976e3b36001bdefdb41fb70415f9c07eff631f1f0155f3225a7649320e77 + build: hcd874cb_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 51297 + timestamp: 1684638355740 +- platform: linux-64 + name: xorg-libxdmcp + version: 1.1.3 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 + hash: + md5: be93aabceefa2fac576e971aef407908 + sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 + build: h7f98852_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 19126 + timestamp: 1610071769228 +- platform: win-64 + name: xorg-libxdmcp + version: 1.1.3 + category: main + manager: conda + dependencies: + - m2w64-gcc-libs + url: https://conda.anaconda.org/conda-forge/win-64/xorg-libxdmcp-1.1.3-hcd874cb_0.tar.bz2 + hash: + md5: 46878ebb6b9cbd8afcf8088d7ef00ece + sha256: f51205d33c07d744ec177243e5d9b874002910c731954f2c8da82459be462b93 + build: hcd874cb_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 67908 + timestamp: 1610072296570 +- platform: linux-64 + name: xorg-libxext + version: 1.3.4 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - xorg-libx11 >=1.7.2,<2.0a0 + - xorg-xextproto + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda + hash: + md5: 82b6df12252e6f32402b96dacc656fec + sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 + build: h0b41bf4_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: MIT + license_family: MIT + size: 50143 + timestamp: 1677036907815 +- platform: linux-64 + name: xorg-libxrender + version: 0.9.11 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - xorg-libx11 >=1.8.6,<2.0a0 + - xorg-renderproto + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda + hash: + md5: ed67c36f215b310412b2af935bf3e530 + sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + size: 37770 + timestamp: 1688300707994 +- platform: linux-64 + name: xorg-renderproto + version: 0.11.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 + hash: + md5: 06feff3d2634e3097ce2fe681474b534 + sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034 + build: h7f98852_1002 + arch: x86_64 + subdir: linux-64 + build_number: 1002 + license: MIT + license_family: MIT + size: 9621 + timestamp: 1614866326326 +- platform: linux-64 + name: xorg-xextproto + version: 7.3.0 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda + hash: + md5: bce9f945da8ad2ae9b1d7165a64d0f87 + sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743 + build: h0b41bf4_1003 + arch: x86_64 + subdir: linux-64 + build_number: 1003 + license: MIT + license_family: MIT + size: 30270 + timestamp: 1677036833037 +- platform: linux-64 + name: xorg-xf86vidmodeproto + version: 2.3.1 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xf86vidmodeproto-2.3.1-h7f98852_1002.tar.bz2 + hash: + md5: 3ceea9668625c18f19530de98b15d5b0 + sha256: 43398aeacad5b8753b7a1c12cb6bca36124e0c842330372635879c350c430791 + build: h7f98852_1002 + arch: x86_64 + subdir: linux-64 + build_number: 1002 + license: MIT + license_family: MIT + size: 23875 + timestamp: 1620067286978 +- platform: linux-64 + name: xorg-xproto + version: 7.0.31 + category: main + manager: conda + dependencies: + - libgcc-ng >=9.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 + hash: + md5: b4a4381d54784606820704f7b5f05a15 + sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d + build: h7f98852_1007 + arch: x86_64 + subdir: linux-64 + build_number: 1007 + license: MIT + license_family: MIT + size: 74922 + timestamp: 1607291557628 +- platform: linux-64 + name: xz + version: 5.2.6 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + build: h166bdaf_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1 and GPL-2.0 + size: 418368 + timestamp: 1660346797927 +- platform: win-64 + name: xz + version: 5.2.6 + category: main + manager: conda + dependencies: + - vc >=14.1,<15 + - vs2015_runtime >=14.16.27033 + url: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + hash: + md5: 515d77642eaa3639413c6b1bc3f94219 + sha256: 54d9778f75a02723784dc63aff4126ff6e6749ba21d11a6d03c1f4775f269fe0 + build: h8d14728_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: LGPL-2.1 and GPL-2.0 + size: 217804 + timestamp: 1660346976440 +- platform: linux-64 + name: zfp + version: 1.0.1 + category: main + manager: conda + dependencies: + - _openmp_mutex >=4.5 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/zfp-1.0.1-h59595ed_0.conda + hash: + md5: fd486bffbf0d6841cf1456a8f2e3a995 + sha256: 52c3bb8ab48892a2851e84764b0d35589434aebebe7941d44d9aeffde53c26d3 + build: h59595ed_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 278045 + timestamp: 1702765714384 +- platform: win-64 + name: zfp + version: 1.0.1 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/zfp-1.0.1-h63175ca_0.conda + hash: + md5: d1b78c521a2329272f7985fe53869670 + sha256: a5d979f150156f6e8506c25ce8777cd5cb568767b91b12a27a6f633f5b020f9e + build: h63175ca_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 235907 + timestamp: 1702766335108 +- platform: linux-64 + name: zipp + version: 3.17.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18954 + timestamp: 1695255262261 + purls: + - pkg:pypi/zipp +- platform: win-64 + name: zipp + version: 3.17.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18954 + timestamp: 1695255262261 + purls: + - pkg:pypi/zipp +- platform: linux-64 + name: zlib + version: 1.2.13 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libzlib 1.2.13 hd590300_5 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda + hash: + md5: 68c34ec6149623be41a1933ab996a209 + sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b + build: hd590300_5 + arch: x86_64 + subdir: linux-64 + build_number: 5 + license: Zlib + license_family: Other + size: 92825 + timestamp: 1686575231103 +- platform: linux-64 + name: zlib-ng + version: 2.0.7 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.0.7-h0b41bf4_0.conda + hash: + md5: 49e8329110001f04923fe7e864990b0c + sha256: 6b3a22b7cc219e8d83f16c1ceba67aa51e0b7e3bcc4a647b97a0a510559b0477 + build: h0b41bf4_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Zlib + license_family: Other + size: 94553 + timestamp: 1679094841423 +- platform: win-64 + name: zlib-ng + version: 2.0.7 + category: main + manager: conda + dependencies: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vs2015_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.0.7-hcfcfb64_0.conda + hash: + md5: c72bb979d406650d3a78743ff888c451 + sha256: 61a4e4c209f04d3f426213a187686262ebc2dccac9a97a0743c2ebbf6e3e3dd8 + build: hcfcfb64_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Zlib + license_family: Other + size: 90788 + timestamp: 1679095380986 +- platform: linux-64 + name: zstd + version: 1.5.5 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + hash: + md5: 04b88013080254850d6c01ed54810589 + sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 + build: hfc55251_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 545199 + timestamp: 1693151163452 +- platform: win-64 + name: zstd + version: 1.5.5 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda + hash: + md5: 792bb5da68bf0a6cac6a6072ecb8dbeb + sha256: d540dd56c5ec772b60e4ce7d45f67f01c6614942225885911964ea1e70bb99e3 + build: h12be248_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 343428 + timestamp: 1693151615801 diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 0000000..b20283a --- /dev/null +++ b/pixi.toml @@ -0,0 +1,47 @@ +# Issues pixi +# - should be able to read pyproject.toml [project] (name, version, description) +# - automatically adds too strict version, bad for Python library +# - optional dependencies and dev groups as PDM +# - import data from pyproject.toml: [project] and [project.optional-dependencies] + +[project] +name = "fluidsim" +channels = ["conda-forge"] +platforms = ["linux-64", "win-64"] + +[tasks] +# use as `pixi run install-editable` +# install-dependencies = "pixi install && pip install -e ./lib && pip install ../transonic" +install-dependencies = "pixi install && pip install -e ./lib && pip install 'transonic>=0.6.0'" +install-editable = {cmd = "pip install -e . -v --no-build-isolation --no-deps", depends_on = ["install-dependencies"]} + +[dependencies] +python = ">=3.9,<3.11" +numpy = ">=1.26.3" +transonic = ">=0.5.3" +fluiddyn = ">=0.5.2" +fluidsim-core = ">=0.7.4" +h5netcdf = ">=1.3.0" +h5py = ">=3.10.0" +xarray = ">=2023.12.0" +matplotlib = ">=3.3" +scipy = ">=1.11.4" +rich = ">=13.7.0" +pip = ">=23.3.2" +pytest = ">=7.4.4" +ipython = ">=8.20.0" +coverage = ">=7.4.0" +pytest-cov = ">=4.1.0" +pytest-mock = ">=3.12.0" +fluidfft = ">=0.2.9" +mpi4py = ">=3.1.5" + +[pypi-dependencies] +pymech = "*" +pytest-allclose = "*" +importlib-metadata = "*" + +[build-dependencies] +meson-python = ">=0.15.0" +pythran = ">=0.15.0" +transonic = ">=0.5.3" From f10f436d6c551de34c9bcf1e1b40ddfdc8a4bf75 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Tue, 30 Jan 2024 14:45:30 +0100 Subject: [PATCH 12/36] WIP: fix CI --- .gitlab-ci.yml | 4 ++-- noxfile.py | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f0ed00e..76d3a30 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,7 +85,7 @@ tests_seq: - job: "image:build" optional: true script: - - cp site.cfg.files/site.cfg.docker_seq site.cfg + # - cp site.cfg.files/site.cfg.docker_seq site.cfg - nox -s "tests(with_cov=True, with_mpi=False)" @@ -95,7 +95,7 @@ tests_mpi: - job: "image:build" optional: true script: - - cp site.cfg.files/site.cfg.docker_mpi site.cfg + # - cp site.cfg.files/site.cfg.docker_mpi site.cfg - nox -s "tests(with_cov=True, with_mpi=True)" diff --git a/noxfile.py b/noxfile.py index 63d49e1..4ab4238 100644 --- a/noxfile.py +++ b/noxfile.py @@ -49,7 +49,11 @@ def tests(session, with_mpi, with_cov): command += " -G mpi" session.run_always(*command.split(), external=True) - session.install("-e", ".", "--no-deps", "-v", silent=False) + session.install( + ".", "--no-deps", "-v", + "--config-settings=setup-args=-Dtransonic-backend=python", + silent=False, + ) session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) session.install("-e", "plugins/fluidfft-pyfftw") @@ -91,7 +95,7 @@ def run_command(command, **kwargs): def doc(session): session.run_always("pdm", "sync", "-G", "doc", "--no-self", external=True) session.install( - "-e", ".", "--no-deps", env={"FLUIDFFT_TRANSONIC_BACKEND": "python"} + ".", "--no-deps", "--config-settings=setup-args=-Dtransonic-backend=python" ) session.install("-e", "plugins/fluidfft-pyfftw") From 360fc9878dd3af905a3b3ebddbdd671ff5d9fde9 Mon Sep 17 00:00:00 2001 From: ogiorgis Date: Wed, 31 Jan 2024 12:19:10 +0100 Subject: [PATCH 13/36] WIP: try to compile fft2d_with_fftw1d.so --- .../src_cy/make_files_with_mako.py | 41 +++++++------------ plugins/fluidfft-fftw/pyproject.toml | 1 + .../src/fluidfft_fftw/fft1d/__init__.py | 0 .../src/fluidfft_fftw/fft1d/meson.build | 8 ---- .../src/fluidfft_fftw/fft2d/meson.build | 33 ++++++++++++--- .../src/fluidfft_fftw/meson.build | 1 - 6 files changed, 43 insertions(+), 41 deletions(-) delete mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py delete mode 100644 plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py index 7434711..d7900b5 100644 --- a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py +++ b/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py @@ -2,12 +2,8 @@ from os.path import join from datetime import datetime -here = os.path.abspath(os.path.dirname(__file__)) - -path_fluidfft = os.path.abspath(os.path.join(here, "..", "src", "fluidfft")) -path2d = os.path.join(path_fluidfft, "fft2d") -path3d = os.path.join(path_fluidfft, "fft3d") - +HERE = os.path.abspath(os.path.dirname(__file__)) +CURRENT_DIR = os.getcwd() def load_template(filename): """Load template file using Mako or Jinja2. @@ -42,12 +38,12 @@ def load_template(filename): "", "%", "##", - loader=FileSystemLoader(here), + loader=FileSystemLoader(HERE), ) print("Falling back to Jinja2 as the template library...") return env.get_template(filename) else: - return Template(filename=join(here, filename)) + return Template(filename=join(HERE, filename)) def modification_date(filename): @@ -56,18 +52,19 @@ def modification_date(filename): def get_path_files(module_name): - if module_name.startswith("fft2d"): - path_package = path2d - elif module_name.startswith("fft3d"): - path_package = path3d - - path_pyx = join(path_package, module_name + ".pyx") - path_pxd = join(path_package, module_name + ".pxd") + path_pyx = join(CURRENT_DIR, module_name + ".pyx") + path_pxd = join(CURRENT_DIR, module_name + ".pxd") return path_pyx, path_pxd -def make_file(module_name, class_name, numpy_api, templates): +def make_file(module_name, class_name, numpy_api): + templates = { + "fft2d_pyx": load_template("template2d_mako.pyx"), + "fft2d_pxd": load_template("template2d_mako.pxd"), + "fft3d_pyx": load_template("template3d_mako.pyx"), + "fft3d_pxd": load_template("template3d_mako.pxd"), + } if module_name.startswith("fft2d"): t_pyx = templates["fft2d_pyx"] t_pxd = templates["fft2d_pxd"] @@ -75,8 +72,6 @@ def make_file(module_name, class_name, numpy_api, templates): t_pyx = templates["fft3d_pyx"] t_pxd = templates["fft3d_pxd"] - path_pyx, path_pxd = get_path_files(module_name) - # Generate pyx and pxd files for path, template in zip(get_path_files(module_name), (t_pyx, t_pxd)): if not os.path.exists(path): @@ -113,16 +108,8 @@ def make_file(module_name, class_name, numpy_api, templates): def make_pyx_files(): - templates = {} - - templates["fft2d_pyx"] = load_template("template2d_mako.pyx") - templates["fft2d_pxd"] = load_template("template2d_mako.pxd") - - templates["fft3d_pyx"] = load_template("template3d_mako.pyx") - templates["fft3d_pxd"] = load_template("template3d_mako.pxd") - for module_name, class_name, numpy_api in variables: - make_file(module_name, class_name, numpy_api, templates) + make_file(module_name, class_name, numpy_api) def _remove(path): diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index 557000d..cfd8f40 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -6,6 +6,7 @@ requires = [ "fluidfft_build_deps>=0.0.1", "pythran>=0.9.7", "jinja2", + "mako", "cython", ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build deleted file mode 100644 index 661195c..0000000 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft1d/meson.build +++ /dev/null @@ -1,8 +0,0 @@ -python_sources = [ - '__init__.py', -] - -py.install_sources( - python_sources, - subdir: 'fluidfft-fftw/ftt1d' -) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index 317520b..097ca66 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -7,7 +7,17 @@ py.install_sources( subdir: 'fluidfft-fftw/ftt2d' ) -cpp_path = run_command( +run_command( + py, + [ + '-c', + '''from fluidfft_build_deps.src_cy.make_files_with_mako import make_file +make_file("fft2d_with_fftw1d", "FFT2DWithFFTW1D", "numpy")''' + ], + check: true +) + +src_cpp_path = run_command( py, [ '-c', @@ -17,9 +27,22 @@ print(fluidfft_build_deps.src_cpp.__path__[0])''' check: true ).stdout().strip() +base_sources = ['base_fft.h'] +foreach filename : base_sources + src = join_paths(src_cpp_path, 'base', filename) + dest = join_paths(meson.current_source_dir(), filename) + run_command('cp', src, dest, check : true) +endforeach -run_command(['transonic', '--meson', '--backend', backend, 'operators2d.py', 'operators3d.py'], check: true) - -foreach be : backends - subdir('__' + be + '__') +sources = ['base_fft2d.h', 'fft2d_with_fftw1d.cpp', 'fft2d_with_fftw1d.h'] +foreach filename : sources + src = join_paths(src_cpp_path, '2d', filename) + dest = join_paths(meson.current_source_dir(), filename) + run_command('cp', src, dest, check : true) endforeach + +# shared_library( +# 'fft2d_with_fftw1d', +# ['fft2d_with_fftw1d.cpp', 'fft2d_with_fftw1d.h'], +# install : true, +# ) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build index 8edbbf9..b3f3729 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build @@ -7,6 +7,5 @@ py.install_sources( subdir: 'fluidfft-fftw' ) -subdir('fft1d') subdir('fft2d') subdir('fft3d') From 6b9f1b505bd0670509e3680b81a83c58ee9456ec Mon Sep 17 00:00:00 2001 From: paugier Date: Thu, 1 Feb 2024 05:27:03 +0100 Subject: [PATCH 14/36] Improve PDM, lock + a bit of fluidsim-fftw --- Makefile | 3 +- pdm.lock | 95 +++++++++++++++---- plugins/fluidfft-build-deps/pyproject.toml | 2 +- plugins/fluidfft-fftw/Makefile | 3 + plugins/fluidfft-fftw/meson.build | 7 +- plugins/fluidfft-fftw/pyproject.toml | 19 +--- .../src/fluidfft_fftw/fft2d/meson.build | 54 +++-------- pyproject.toml | 11 +-- 8 files changed, 107 insertions(+), 87 deletions(-) create mode 100644 plugins/fluidfft-fftw/Makefile diff --git a/Makefile b/Makefile index 5c5596f..6b55005 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,11 @@ develop: sync pdm run pip install -e . --no-deps --no-build-isolation -v + pdm run pip install -e plugins/fluidfft-pyfftw sync: pdm sync --clean --no-self - pdm run pip install -e plugins/fluidfft-pyfftw + pdm run pip install -e plugins/fluidfft-build-deps clean: rm -rf build diff --git a/pdm.lock b/pdm.lock index 283f459..80973c3 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "build", "dev", "doc", "lint", "mpi", "pyfftw", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:fa8fed49b3185142e063643fc76eafe758c30c1287cd69e0ccc147fcede35aeb" +content_hash = "sha256:6e47c3a04d50646bfc9128a989548b800190b9178ced765024f2e5a0878d8ca4" [[package]] name = "alabaster" @@ -422,8 +422,8 @@ name = "colorama" version = "0.4.6" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Cross-platform colored terminal text." -groups = ["dev", "doc", "lint", "test"] -marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" +groups = ["build", "dev", "doc", "lint", "test"] +marker = "sys_platform == \"win32\" or os_name == \"nt\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -1125,7 +1125,7 @@ name = "jinja2" version = "3.1.3" requires_python = ">=3.7" summary = "A very fast and expressive template engine." -groups = ["build", "doc"] +groups = ["doc"] dependencies = [ "MarkupSafe>=2.0", ] @@ -1560,7 +1560,7 @@ name = "markupsafe" version = "2.1.4" requires_python = ">=3.7" summary = "Safely add untrusted strings to HTML/XML markup." -groups = ["build", "doc"] +groups = ["doc"] files = [ {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, @@ -1704,6 +1704,35 @@ files = [ {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] +[[package]] +name = "meson" +version = "1.3.1" +requires_python = ">=3.7" +summary = "A high performance build system" +groups = ["build"] +files = [ + {file = "meson-1.3.1-py3-none-any.whl", hash = "sha256:d5223ecca9564d735d36daaba2571abc6c032c8c3a7ffa0674e803ef0c7e0219"}, + {file = "meson-1.3.1.tar.gz", hash = "sha256:6020568bdede1643d4fb41e28215be38eff5d52da28ac7d125457c59e0032ad7"}, +] + +[[package]] +name = "meson-python" +version = "0.15.0" +requires_python = ">=3.7" +summary = "Meson Python build backend (PEP 517)" +groups = ["build"] +dependencies = [ + "colorama; os_name == \"nt\"", + "meson>=0.63.3; python_version < \"3.12\"", + "meson>=1.2.3; python_version >= \"3.12\"", + "pyproject-metadata>=0.7.1", + "tomli>=1.0.0; python_version < \"3.11\"", +] +files = [ + {file = "meson_python-0.15.0-py3-none-any.whl", hash = "sha256:3ae38253ff02b2e947a05e362a2eaf5a9a09d133c5666b4123399ee5fbf2e591"}, + {file = "meson_python-0.15.0.tar.gz", hash = "sha256:fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f"}, +] + [[package]] name = "mistune" version = "3.0.2" @@ -1860,6 +1889,29 @@ files = [ {file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"}, ] +[[package]] +name = "ninja" +version = "1.11.1.1" +summary = "Ninja is a small build system with a focus on speed" +groups = ["build"] +files = [ + {file = "ninja-1.11.1.1-py2.py3-none-macosx_10_9_universal2.macosx_10_9_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:376889c76d87b95b5719fdd61dd7db193aa7fd4432e5d52d2e44e4c497bdbbee"}, + {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:ecf80cf5afd09f14dcceff28cb3f11dc90fb97c999c89307aea435889cb66877"}, + {file = "ninja-1.11.1.1-py2.py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:84502ec98f02a037a169c4b0d5d86075eaf6afc55e1879003d6cab51ced2ea4b"}, + {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:73b93c14046447c7c5cc892433d4fae65d6364bec6685411cb97a8bcf815f93a"}, + {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:18302d96a5467ea98b68e1cae1ae4b4fb2b2a56a82b955193c637557c7273dbd"}, + {file = "ninja-1.11.1.1-py2.py3-none-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:aad34a70ef15b12519946c5633344bc775a7656d789d9ed5fdb0d456383716ef"}, + {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d491fc8d89cdcb416107c349ad1e3a735d4c4af5e1cb8f5f727baca6350fdaea"}, + {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_i686.whl", hash = "sha256:7563ce1d9fe6ed5af0b8dd9ab4a214bf4ff1f2f6fd6dc29f480981f0f8b8b249"}, + {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:9df724344202b83018abb45cb1efc22efd337a1496514e7e6b3b59655be85205"}, + {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_s390x.whl", hash = "sha256:3e0f9be5bb20d74d58c66cc1c414c3e6aeb45c35b0d0e41e8d739c2c0d57784f"}, + {file = "ninja-1.11.1.1-py2.py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:76482ba746a2618eecf89d5253c0d1e4f1da1270d41e9f54dfbd91831b0f6885"}, + {file = "ninja-1.11.1.1-py2.py3-none-win32.whl", hash = "sha256:fa2ba9d74acfdfbfbcf06fad1b8282de8a7a8c481d9dee45c859a8c93fcc1082"}, + {file = "ninja-1.11.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:95da904130bfa02ea74ff9c0116b4ad266174fafb1c707aa50212bc7859aebf1"}, + {file = "ninja-1.11.1.1-py2.py3-none-win_arm64.whl", hash = "sha256:185e0641bde601e53841525c4196278e9aaf4463758da6dd1e752c0a0f54136a"}, + {file = "ninja-1.11.1.1.tar.gz", hash = "sha256:9d793b08dd857e38d0b6ffe9e6b7145d7c485a42dcfea04905ca0cdb6017cc3c"}, +] + [[package]] name = "notebook" version = "7.0.7" @@ -1970,7 +2022,7 @@ name = "packaging" version = "23.2" requires_python = ">=3.7" summary = "Core utilities for Python packages" -groups = ["default", "doc", "lint", "test"] +groups = ["build", "default", "doc", "lint", "test"] files = [ {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, @@ -2149,13 +2201,13 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" +version = "4.2.0" requires_python = ">=3.8" summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." groups = ["doc", "lint"] files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-4.2.0-py3-none-any.whl", hash = "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068"}, + {file = "platformdirs-4.2.0.tar.gz", hash = "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768"}, ] [[package]] @@ -2341,6 +2393,20 @@ files = [ {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, ] +[[package]] +name = "pyproject-metadata" +version = "0.7.1" +requires_python = ">=3.7" +summary = "PEP 621 metadata parsing" +groups = ["build"] +dependencies = [ + "packaging>=19.0", +] +files = [ + {file = "pyproject-metadata-0.7.1.tar.gz", hash = "sha256:0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67"}, + {file = "pyproject_metadata-0.7.1-py3-none-any.whl", hash = "sha256:28691fbb36266a819ec56c9fa1ecaf36f879d6944dfde5411e87fc4ff793aa60"}, +] + [[package]] name = "pytest" version = "8.0.0" @@ -3243,17 +3309,6 @@ files = [ {file = "websocket_client-1.7.0-py3-none-any.whl", hash = "sha256:f4c3d22fec12a2461427a29957ff07d35098ee2d976d3ba244e688b8b4057588"}, ] -[[package]] -name = "wheel" -version = "0.42.0" -requires_python = ">=3.7" -summary = "A built-package format for Python" -groups = ["build"] -files = [ - {file = "wheel-0.42.0-py3-none-any.whl", hash = "sha256:177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d"}, - {file = "wheel-0.42.0.tar.gz", hash = "sha256:c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8"}, -] - [[package]] name = "widgetsnbextension" version = "4.0.9" diff --git a/plugins/fluidfft-build-deps/pyproject.toml b/plugins/fluidfft-build-deps/pyproject.toml index 76446a5..b94158c 100644 --- a/plugins/fluidfft-build-deps/pyproject.toml +++ b/plugins/fluidfft-build-deps/pyproject.toml @@ -9,7 +9,7 @@ description = "Fluidfft plugin dependencies" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] license = {file = "LICENSE"} classifiers = ["License :: OSI Approved :: MIT License"] -dependencies = ["fluidfft", "pyfftw"] +dependencies = ["mako"] [project.urls] Home = "https://foss.heptapod.net/fluiddyn/fluidfft" diff --git a/plugins/fluidfft-fftw/Makefile b/plugins/fluidfft-fftw/Makefile new file mode 100644 index 0000000..15c5e69 --- /dev/null +++ b/plugins/fluidfft-fftw/Makefile @@ -0,0 +1,3 @@ + +develop: + pip install -e . -vv --no-build-isolation --no-deps diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index 3c21b0b..7079d81 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -1,12 +1,13 @@ project( 'fluidfft-fftw', 'cpp', + 'cython', license: 'CeCILL', meson_version: '>= 1.1.0', default_options: [ 'buildtype=release', 'c_std=c99', - 'cpp_std=c++14', + 'cpp_std=c++11', ], ) @@ -15,4 +16,8 @@ py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() +libfftw3 = dependency('libfftw3', static: false) + +include_path_fluidfft_build_deps = run_command("fluidsim-build-get-include-path") + subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index cfd8f40..fd95ebe 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -1,21 +1,8 @@ [build-system] requires = [ - "meson-python", - "numpy", - "transonic>=0.6.0", - "fluidfft_build_deps>=0.0.1", - "pythran>=0.9.7", - "jinja2", - "mako", - "cython", - ] -build-backend = 'mesonpy' - -dependencies = [ - "fluidfft >= 0.3.5", - "transonic >= 0.4", - "importlib_metadata; python_version < '3.10'", + "meson-python", "numpy", "fluidfft_build_deps>=0.0.1", "cython" ] +build-backend = 'mesonpy' [project] name = "fluidfft_fftw" @@ -24,7 +11,7 @@ description = "Fluidfft plugin using fftw" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] license = {file = "LICENSE"} classifiers = ["License :: OSI Approved :: MIT License"] -dependencies = ["fluidfft", "pyfftw"] +dependencies = ["fluidfft"] [project.urls] Home = "https://foss.heptapod.net/fluiddyn/fluidfft" diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index 097ca66..e586112 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -1,48 +1,24 @@ -python_sources = [ - '__init__.py', -] py.install_sources( - python_sources, + '__init__.py', subdir: 'fluidfft-fftw/ftt2d' ) -run_command( - py, - [ - '-c', - '''from fluidfft_build_deps.src_cy.make_files_with_mako import make_file -make_file("fft2d_with_fftw1d", "FFT2DWithFFTW1D", "numpy")''' - ], - check: true +with_fftw1d_pyx = custom_target( + 'with_fftw1d.pyx', + command: ['fluidsim-build-make-pyx', '@OUTPUT@', 'FFT2DWithFFTW1D'] ) -src_cpp_path = run_command( - py, - [ - '-c', - '''import fluidfft_build_deps.src_cpp -print(fluidfft_build_deps.src_cpp.__path__[0])''' - ], - check: true -).stdout().strip() - -base_sources = ['base_fft.h'] -foreach filename : base_sources - src = join_paths(src_cpp_path, 'base', filename) - dest = join_paths(meson.current_source_dir(), filename) - run_command('cp', src, dest, check : true) -endforeach +with_fftw1d_pxd = custom_target( + 'with_fftw1d.pxd', + command: ['fluidsim-build-make-pxd', '@OUTPUT@', 'FFT2DWithFFTW1D'] +) -sources = ['base_fft2d.h', 'fft2d_with_fftw1d.cpp', 'fft2d_with_fftw1d.h'] -foreach filename : sources - src = join_paths(src_cpp_path, '2d', filename) - dest = join_paths(meson.current_source_dir(), filename) - run_command('cp', src, dest, check : true) -endforeach +# see https://mesonbuild.com/Cython.html +py.extension_module( + 'with_fftw1d', + pyx, + dependencies: libfftw3, + install: true +) -# shared_library( -# 'fft2d_with_fftw1d', -# ['fft2d_with_fftw1d.cpp', 'fft2d_with_fftw1d.h'], -# install : true, -# ) diff --git a/pyproject.toml b/pyproject.toml index 092376d..933d124 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,6 @@ [build-system] -requires = [ - "meson-python", - "numpy", - "transonic>=0.6.0", - "pythran>=0.9.7", - "jinja2", - "cython", - ] +requires = ["meson-python", "numpy", "transonic>=0.6.0", "pythran>=0.9.7"] build-backend = 'mesonpy' [project] @@ -90,7 +83,7 @@ distribution = true package-dir = "src" [tool.pdm.dev-dependencies] -build = ["setuptools", "transonic", "pythran", "wheel", "jinja2"] +build = ["meson-python", "ninja", "numpy", "transonic>=0.6.0", "pythran>=0.9.7"] # plugins = [ # "-e fluidfft-mpi4pyfft @ file:///${PROJECT_ROOT}/plugins/fluidfft-mpi4pyfft", From c8f9bac5b7aca9cb2c71f43f6d92977c54a249f5 Mon Sep 17 00:00:00 2001 From: paugier Date: Thu, 1 Feb 2024 05:37:42 +0100 Subject: [PATCH 15/36] fluidfft-builder --- Makefile | 4 ++-- doc/conf.py | 2 +- noxfile.py | 2 +- .../fluidfft_builder}/__init__.py | 0 .../fluidfft_builder}/src_cpp/2d/Makefile | 0 .../fluidfft_builder}/src_cpp/2d/README.rst | 0 .../fluidfft_builder}/src_cpp/2d/TODOLIST.rst | 0 .../fluidfft_builder}/src_cpp/2d/base_fft2d.cpp | 0 .../fluidfft_builder}/src_cpp/2d/base_fft2d.h | 0 .../fluidfft_builder}/src_cpp/2d/base_fft2dmpi.cpp | 0 .../fluidfft_builder}/src_cpp/2d/base_fft2dmpi.h | 0 .../fluidfft_builder}/src_cpp/2d/fft2d_with_cufft.h | 0 .../fluidfft_builder}/src_cpp/2d/fft2d_with_fftw1d.cpp | 0 .../fluidfft_builder}/src_cpp/2d/fft2d_with_fftw1d.h | 0 .../fluidfft_builder}/src_cpp/2d/fft2d_with_fftw2d.cpp | 0 .../fluidfft_builder}/src_cpp/2d/fft2d_with_fftw2d.h | 0 .../fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftw1d.cpp | 0 .../fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftw1d.h | 0 .../fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp | 0 .../fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h | 0 .../fluidfft_builder}/src_cpp/2d/plot_results.py | 0 .../fluidfft_builder}/src_cpp/2d/run_benchs.py | 0 .../fluidfft_builder}/src_cpp/2d/test_bench.cpp | 0 .../fluidfft_builder}/src_cpp/3d/Makefile | 0 .../fluidfft_builder}/src_cpp/3d/Makefile.beskow | 0 .../fluidfft_builder}/src_cpp/3d/README.rst | 0 .../fluidfft_builder}/src_cpp/3d/base_fft3d.cpp | 0 .../fluidfft_builder}/src_cpp/3d/base_fft3d.h | 0 .../fluidfft_builder}/src_cpp/3d/base_fft3dmpi.cpp | 0 .../fluidfft_builder}/src_cpp/3d/base_fft3dmpi.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3d_with_cufft.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3d_with_fftw3d.cpp | 0 .../fluidfft_builder}/src_cpp/3d/fft3d_with_fftw3d.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftw1d.cpp | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftw1d.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_p3dfft.cpp | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_p3dfft.h | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_pfft.cpp | 0 .../fluidfft_builder}/src_cpp/3d/fft3dmpi_with_pfft.h | 0 .../fluidfft_builder}/src_cpp/3d/launch.oar | 0 .../fluidfft_builder}/src_cpp/3d/test_bench.cpp | 0 .../fluidfft_builder}/src_cpp/base/base_fft.cpp | 0 .../fluidfft_builder}/src_cpp/base/base_fft.h | 0 .../fluidfft_builder}/src_cpp/base/base_fftmpi.cpp | 0 .../fluidfft_builder}/src_cpp/base/base_fftmpi.h | 0 .../fluidfft_builder}/src_cpp/base/mainpage.h | 0 .../fluidfft_builder}/src_cy/Makefile | 0 .../fluidfft_builder}/src_cy/__init__.py | 0 .../fluidfft_builder}/src_cy/base.pyx | 0 .../fluidfft_builder}/src_cy/cpu.pxd | 0 .../fluidfft_builder}/src_cy/create_fake_mod_for_doc.py | 0 .../fluidfft_builder}/src_cy/make_files_with_mako.py | 0 .../fluidfft_builder}/src_cy/template2d_mako.pxd | 0 .../fluidfft_builder}/src_cy/template2d_mako.pyx | 0 .../fluidfft_builder}/src_cy/template3d_mako.pxd | 0 .../fluidfft_builder}/src_cy/template3d_mako.pyx | 0 .../fluidfft_builder}/src_cy/tmp_2dto3d.py | 0 .../fluidfft_builder}/src_cy/util_pyfftw.pyx | 0 .../{fluidfft-build-deps => fluidfft-builder}/pyproject.toml | 2 +- plugins/fluidfft-fftw/meson.build | 2 +- plugins/fluidfft-fftw/pyproject.toml | 2 +- 63 files changed, 7 insertions(+), 7 deletions(-) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/__init__.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/Makefile (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/README.rst (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/TODOLIST.rst (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/base_fft2d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/base_fft2d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/base_fft2dmpi.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/base_fft2dmpi.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2d_with_cufft.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2d_with_fftw1d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2d_with_fftw1d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2d_with_fftw2d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2d_with_fftw2d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftw1d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftw1d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/plot_results.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/run_benchs.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/2d/test_bench.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/Makefile (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/Makefile.beskow (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/README.rst (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/base_fft3d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/base_fft3d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/base_fft3dmpi.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/base_fft3dmpi.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3d_with_cufft.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3d_with_fftw3d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3d_with_fftw3d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftw1d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftw1d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_p3dfft.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_p3dfft.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_pfft.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/fft3dmpi_with_pfft.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/launch.oar (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/3d/test_bench.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/base/base_fft.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/base/base_fft.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/base/base_fftmpi.cpp (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/base/base_fftmpi.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cpp/base/mainpage.h (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/Makefile (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/__init__.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/base.pyx (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/cpu.pxd (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/create_fake_mod_for_doc.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/make_files_with_mako.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/template2d_mako.pxd (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/template2d_mako.pyx (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/template3d_mako.pxd (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/template3d_mako.pyx (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/tmp_2dto3d.py (100%) rename plugins/{fluidfft-build-deps/fluidfft_build_deps => fluidfft-builder/fluidfft_builder}/src_cy/util_pyfftw.pyx (100%) rename plugins/{fluidfft-build-deps => fluidfft-builder}/pyproject.toml (93%) diff --git a/Makefile b/Makefile index 6b55005..c99e30f 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ develop: sync sync: pdm sync --clean --no-self - pdm run pip install -e plugins/fluidfft-build-deps + pdm run pip install -e plugins/fluidfft-builder clean: rm -rf build @@ -21,7 +21,7 @@ cleancython: find src -name "*_cy.cpp" -delete cleanmako: - python -c "from fluidfft_build_deps.src_cy.make_files_with_mako import clean_files as c; c()" + python -c "from fluidfft_builder.src_cy.make_files_with_mako import clean_files as c; c()" cleanall: clean cleanso cleanmako cleancython cleanpythran diff --git a/doc/conf.py b/doc/conf.py index 3d04667..7672024 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -95,7 +95,7 @@ def save_fig_scaling(dir_name, dim, n0, n1, n2=None): print("Can not find doxygen to generate the documentation of the cpp code.") run_path( - "../plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py" + "../plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py" ) diff --git a/noxfile.py b/noxfile.py index 4ab4238..a38f262 100644 --- a/noxfile.py +++ b/noxfile.py @@ -57,7 +57,7 @@ def tests(session, with_mpi, with_cov): session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) session.install("-e", "plugins/fluidfft-pyfftw") - session.install("-e", "plugins/fluidfft-build-deps") + session.install("-e", "plugins/fluidfft-builder") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/__init__.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/__init__.py rename to plugins/fluidfft-builder/fluidfft_builder/__init__.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/Makefile b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/Makefile similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/Makefile rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/Makefile diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/README.rst b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/README.rst similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/README.rst rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/README.rst diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/TODOLIST.rst b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/TODOLIST.rst similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/TODOLIST.rst rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/TODOLIST.rst diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/base_fft2dmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_cufft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_cufft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw1d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2d_with_fftw2d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftw1d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/plot_results.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/plot_results.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/plot_results.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/run_benchs.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/run_benchs.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/run_benchs.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/test_bench.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/test_bench.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/2d/test_bench.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/test_bench.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile.beskow b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile.beskow similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/Makefile.beskow rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile.beskow diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/README.rst b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/README.rst similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/README.rst rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/README.rst diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/base_fft3dmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_cufft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_cufft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3d_with_fftw3d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftw1d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_p3dfft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/fft3dmpi_with_pfft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/launch.oar b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/launch.oar similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/launch.oar rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/launch.oar diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/test_bench.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/test_bench.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/3d/test_bench.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/test_bench.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.cpp similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.cpp diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/base_fftmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/mainpage.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/mainpage.h similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cpp/base/mainpage.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/mainpage.h diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/Makefile b/plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/Makefile rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/__init__.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/__init__.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/__init__.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/base.pyx b/plugins/fluidfft-builder/fluidfft_builder/src_cy/base.pyx similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/base.pyx rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/base.pyx diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/cpu.pxd b/plugins/fluidfft-builder/fluidfft_builder/src_cy/cpu.pxd similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/cpu.pxd rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/cpu.pxd diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/create_fake_mod_for_doc.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/make_files_with_mako.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/make_files_with_mako.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/make_files_with_mako.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pxd similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pxd diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pyx similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template2d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pyx diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pxd similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pxd diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pyx similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/template3d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pyx diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/tmp_2dto3d.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/tmp_2dto3d.py rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py diff --git a/plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/util_pyfftw.pyx b/plugins/fluidfft-builder/fluidfft_builder/src_cy/util_pyfftw.pyx similarity index 100% rename from plugins/fluidfft-build-deps/fluidfft_build_deps/src_cy/util_pyfftw.pyx rename to plugins/fluidfft-builder/fluidfft_builder/src_cy/util_pyfftw.pyx diff --git a/plugins/fluidfft-build-deps/pyproject.toml b/plugins/fluidfft-builder/pyproject.toml similarity index 93% rename from plugins/fluidfft-build-deps/pyproject.toml rename to plugins/fluidfft-builder/pyproject.toml index b94158c..9fa8656 100644 --- a/plugins/fluidfft-build-deps/pyproject.toml +++ b/plugins/fluidfft-builder/pyproject.toml @@ -3,7 +3,7 @@ requires = ["flit_core >=3.2,<4"] build-backend = "flit_core.buildapi" [project] -name = "fluidfft_build_deps" +name = "fluidfft_builder" version = "0.0.1" description = "Fluidfft plugin dependencies" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index 7079d81..af47609 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -18,6 +18,6 @@ py_dep = py.dependency() libfftw3 = dependency('libfftw3', static: false) -include_path_fluidfft_build_deps = run_command("fluidsim-build-get-include-path") +include_path_fluidfft_builder = run_command("fluidsim-build-get-include-path") subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index fd95ebe..887e154 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_build_deps>=0.0.1", "cython" + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython" ] build-backend = 'mesonpy' From 972d96161fbb1fc4a2e12f0762694026fe8e2aaf Mon Sep 17 00:00:00 2001 From: paugier Date: Thu, 1 Feb 2024 06:40:04 +0100 Subject: [PATCH 16/36] Dispatch the cpp files --- .../src_cpp/2d/fft2d_with_cufft.h | 47 ------------------- .../src_cpp/3d/fft3d_with_cufft.h | 47 ------------------- .../src_cpp/{base => }/base_fft.cpp | 0 .../src_cpp/{base => }/base_fft.h | 0 .../src_cpp/{2d => }/base_fft2d.cpp | 0 .../src_cpp/{2d => }/base_fft2d.h | 0 .../src_cpp/{2d => }/base_fft2dmpi.cpp | 0 .../src_cpp/{2d => }/base_fft2dmpi.h | 0 .../src_cpp/{3d => }/base_fft3d.cpp | 0 .../src_cpp/{3d => }/base_fft3d.h | 0 .../src_cpp/{3d => }/base_fft3dmpi.cpp | 0 .../src_cpp/{3d => }/base_fft3dmpi.h | 0 .../src_cpp/{base => }/base_fftmpi.cpp | 0 .../src_cpp/{base => }/base_fftmpi.h | 0 .../src_cpp/{base => }/mainpage.h | 0 .../fft2d}/fft2d_with_fftw1d.cpp | 0 .../fluidfft_fftw/fft2d}/fft2d_with_fftw1d.h | 0 .../fft2d}/fft2d_with_fftw2d.cpp | 0 .../fluidfft_fftw/fft2d}/fft2d_with_fftw2d.h | 0 .../fft3d}/fft3d_with_fftw3d.cpp | 0 .../fluidfft_fftw/fft3d}/fft3d_with_fftw3d.h | 0 .../fft2dmpi_with_fftwmpi2d.cpp | 0 .../fft2dmpi_with_fftwmpi2d.h | 0 .../fft3dmpi_with_fftwmpi3d.cpp | 0 .../fft3dmpi_with_fftwmpi3d.h | 0 .../fft2dmpi_with_fftw1d.cpp | 0 .../fft2dmpi_with_fftw1d.h | 0 .../fft3dmpi_with_fftw1d.cpp | 0 .../fft3dmpi_with_fftw1d.h | 0 .../fft3dmpi_with_p3dfft.cpp | 0 .../fft3dmpi_with_p3dfft.h | 0 .../fft3dmpi_with_pfft.cpp | 0 .../3d => fluidfft-pfft}/fft3dmpi_with_pfft.h | 0 .../src_cpp => pure_cpp}/2d/Makefile | 0 .../src_cpp => pure_cpp}/2d/README.rst | 0 .../src_cpp => pure_cpp}/2d/TODOLIST.rst | 0 .../src_cpp => pure_cpp}/2d/plot_results.py | 0 .../src_cpp => pure_cpp}/2d/run_benchs.py | 0 .../src_cpp => pure_cpp}/2d/test_bench.cpp | 0 .../src_cpp => pure_cpp}/3d/Makefile | 0 .../src_cpp => pure_cpp}/3d/Makefile.beskow | 0 .../src_cpp => pure_cpp}/3d/README.rst | 0 .../src_cpp => pure_cpp}/3d/launch.oar | 0 .../src_cpp => pure_cpp}/3d/test_bench.cpp | 0 44 files changed, 94 deletions(-) delete mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h delete mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{base => }/base_fft.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{base => }/base_fft.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{2d => }/base_fft2d.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{2d => }/base_fft2d.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{2d => }/base_fft2dmpi.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{2d => }/base_fft2dmpi.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{3d => }/base_fft3d.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{3d => }/base_fft3d.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{3d => }/base_fft3dmpi.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{3d => }/base_fft3dmpi.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{base => }/base_fftmpi.cpp (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{base => }/base_fftmpi.h (100%) rename plugins/fluidfft-builder/fluidfft_builder/src_cpp/{base => }/mainpage.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftw/src/fluidfft_fftw/fft2d}/fft2d_with_fftw1d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftw/src/fluidfft_fftw/fft2d}/fft2d_with_fftw1d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftw/src/fluidfft_fftw/fft2d}/fft2d_with_fftw2d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftw/src/fluidfft_fftw/fft2d}/fft2d_with_fftw2d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-fftw/src/fluidfft_fftw/fft3d}/fft3d_with_fftw3d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-fftw/src/fluidfft_fftw/fft3d}/fft3d_with_fftw3d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftwmpi}/fft2dmpi_with_fftwmpi2d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-fftwmpi}/fft2dmpi_with_fftwmpi2d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-fftwmpi}/fft3dmpi_with_fftwmpi3d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-fftwmpi}/fft3dmpi_with_fftwmpi3d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-mpi_with_fftw}/fft2dmpi_with_fftw1d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/2d => fluidfft-mpi_with_fftw}/fft2dmpi_with_fftw1d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-mpi_with_fftw}/fft3dmpi_with_fftw1d.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-mpi_with_fftw}/fft3dmpi_with_fftw1d.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-p3dfft}/fft3dmpi_with_p3dfft.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-p3dfft}/fft3dmpi_with_p3dfft.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-pfft}/fft3dmpi_with_pfft.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp/3d => fluidfft-pfft}/fft3dmpi_with_pfft.h (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/Makefile (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/README.rst (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/TODOLIST.rst (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/plot_results.py (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/run_benchs.py (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/2d/test_bench.cpp (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/3d/Makefile (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/3d/Makefile.beskow (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/3d/README.rst (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/3d/launch.oar (100%) rename plugins/{fluidfft-builder/fluidfft_builder/src_cpp => pure_cpp}/3d/test_bench.cpp (100%) diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h deleted file mode 100644 index 5249f38..0000000 --- a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_cufft.h +++ /dev/null @@ -1,47 +0,0 @@ - -/* #include */ -#include -#include -#include -// #include -// #include - -#define checkCudaErrors(x) x - -#ifdef SINGLE_PREC -typedef float2 dcomplex; -#else -typedef double2 dcomplex; -#endif - -class FFT2DWithCUFFT : public BaseFFT2D { -public: - FFT2DWithCUFFT(int N0, int N1); - ~FFT2DWithCUFFT(); - void destroy(); - - void fft(myreal *fieldX, mycomplex *fieldK); - void ifft(mycomplex *fieldK, myreal *fieldX); - myreal compute_energy_from_K(mycomplex *fieldK); - myreal sum_wavenumbers(myreal *fieldK); - myreal compute_mean_from_K(mycomplex *fieldK); - - virtual const char *get_classname(); - - myreal compute_energy_from_X(myreal *fieldX); - myreal compute_mean_from_X(myreal *fieldX); - -private: - int nX1loc, nK1loc, nXxloc, nXyloc, nXx, nXy, nKyloc; - - int mem_size; // equivalent à la taille de arrayK? - int mem_sizer; // equivalent à la taille de arrayK? - - // Allocate device memory for signal - myreal *arrayX; - myreal *arrayK; - dcomplex *data; - myreal *datar; - cufftHandle plan; - cufftHandle plan1; -}; diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h deleted file mode 100644 index 5dd40eb..0000000 --- a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_cufft.h +++ /dev/null @@ -1,47 +0,0 @@ - -#include -#include -#include -#include -/* #include */ -/* #include */ - -#define checkCudaErrors(x) x - -#ifdef SINGLE_PREC -typedef float2 dcomplex; -#else -typedef double2 dcomplex; -#endif - -class FFT3DWithCUFFT : public BaseFFT3D { -public: - FFT3DWithCUFFT(int N0, int N1, int N2); - ~FFT3DWithCUFFT(); - void destroy(); - - virtual const char *get_classname(); - - void fft(myreal *fieldX, mycomplex *fieldK); - void ifft(mycomplex *fieldK, myreal *fieldX); - void ifft_destroy(mycomplex *fieldK, myreal *fieldX); - - myreal compute_energy_from_K(mycomplex *fieldK); - myreal compute_mean_from_K(mycomplex *fieldK); - void sum_wavenumbers_complex(mycomplex *fieldK, mycomplex *result); - - myreal compute_energy_from_X(myreal *fieldX); - myreal sum_wavenumbers_double(myreal *fieldK); - -private: - int mem_size; // equivalent à la taille de arrayK? - int mem_sizer; // equivalent à la taille de arrayK? - - // Allocate device memory for signal - myreal *arrayX; - myreal *arrayK; - dcomplex *data; - myreal *datar; - cufftHandle plan; - cufftHandle plan1; -}; diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fft.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2dmpi.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2dmpi.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2dmpi.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/base_fft2dmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft2dmpi.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3d.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3dmpi.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3dmpi.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3dmpi.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/base_fft3dmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fft3dmpi.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.cpp b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fftmpi.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.cpp rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fftmpi.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fftmpi.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/base_fftmpi.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/base_fftmpi.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/mainpage.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/mainpage.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/base/mainpage.h rename to plugins/fluidfft-builder/fluidfft_builder/src_cpp/mainpage.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.cpp b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.cpp rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.h b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw1d.h rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.cpp b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw2d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.cpp rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw2d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.h b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw2d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2d_with_fftw2d.h rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw2d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.cpp b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/fft3d_with_fftw3d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.cpp rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/fft3d_with_fftw3d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.h b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/fft3d_with_fftw3d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3d_with_fftw3d.h rename to plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/fft3d_with_fftw3d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp b/plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.cpp rename to plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h b/plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftwmpi2d.h rename to plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp b/plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.cpp rename to plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h b/plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftwmpi3d.h rename to plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.cpp b/plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.cpp rename to plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.h b/plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/fft2dmpi_with_fftw1d.h rename to plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.cpp b/plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.cpp rename to plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.h b/plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_fftw1d.h rename to plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.cpp b/plugins/fluidfft-p3dfft/fft3dmpi_with_p3dfft.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.cpp rename to plugins/fluidfft-p3dfft/fft3dmpi_with_p3dfft.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.h b/plugins/fluidfft-p3dfft/fft3dmpi_with_p3dfft.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_p3dfft.h rename to plugins/fluidfft-p3dfft/fft3dmpi_with_p3dfft.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.cpp b/plugins/fluidfft-pfft/fft3dmpi_with_pfft.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.cpp rename to plugins/fluidfft-pfft/fft3dmpi_with_pfft.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.h b/plugins/fluidfft-pfft/fft3dmpi_with_pfft.h similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/fft3dmpi_with_pfft.h rename to plugins/fluidfft-pfft/fft3dmpi_with_pfft.h diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/Makefile b/plugins/pure_cpp/2d/Makefile similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/Makefile rename to plugins/pure_cpp/2d/Makefile diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/README.rst b/plugins/pure_cpp/2d/README.rst similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/README.rst rename to plugins/pure_cpp/2d/README.rst diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/TODOLIST.rst b/plugins/pure_cpp/2d/TODOLIST.rst similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/TODOLIST.rst rename to plugins/pure_cpp/2d/TODOLIST.rst diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/plot_results.py b/plugins/pure_cpp/2d/plot_results.py similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/plot_results.py rename to plugins/pure_cpp/2d/plot_results.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/run_benchs.py b/plugins/pure_cpp/2d/run_benchs.py similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/run_benchs.py rename to plugins/pure_cpp/2d/run_benchs.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/test_bench.cpp b/plugins/pure_cpp/2d/test_bench.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/2d/test_bench.cpp rename to plugins/pure_cpp/2d/test_bench.cpp diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile b/plugins/pure_cpp/3d/Makefile similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile rename to plugins/pure_cpp/3d/Makefile diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile.beskow b/plugins/pure_cpp/3d/Makefile.beskow similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/Makefile.beskow rename to plugins/pure_cpp/3d/Makefile.beskow diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/README.rst b/plugins/pure_cpp/3d/README.rst similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/README.rst rename to plugins/pure_cpp/3d/README.rst diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/launch.oar b/plugins/pure_cpp/3d/launch.oar similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/launch.oar rename to plugins/pure_cpp/3d/launch.oar diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/test_bench.cpp b/plugins/pure_cpp/3d/test_bench.cpp similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cpp/3d/test_bench.cpp rename to plugins/pure_cpp/3d/test_bench.cpp From 1b4abe9cebb3d1cebab7d7f6e3f499c3556e2fa3 Mon Sep 17 00:00:00 2001 From: paugier Date: Thu, 1 Feb 2024 07:20:41 +0100 Subject: [PATCH 17/36] Reorganize fluidfft_builder --- .../{src_cy => }/create_fake_mod_for_doc.py | 0 .../{src_cy => include_cy}/base.pyx | 0 .../{src_cy => include_cy}/cpu.pxd | 0 .../{src_cy => include_cy}/util_pyfftw.pyx | 0 ...ke_files_with_mako.py => make_cy_files.py} | 0 .../fluidfft_builder/src_cy/Makefile | 19 ---- .../fluidfft_builder/src_cy/__init__.py | 0 .../fluidfft_builder/src_cy/tmp_2dto3d.py | 95 ------------------- .../{src_cy => templates}/template2d_mako.pxd | 0 .../{src_cy => templates}/template2d_mako.pyx | 0 .../{src_cy => templates}/template3d_mako.pxd | 0 .../{src_cy => templates}/template3d_mako.pyx | 0 12 files changed, 114 deletions(-) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => }/create_fake_mod_for_doc.py (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => include_cy}/base.pyx (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => include_cy}/cpu.pxd (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => include_cy}/util_pyfftw.pyx (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy/make_files_with_mako.py => make_cy_files.py} (100%) delete mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile delete mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cy/__init__.py delete mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => templates}/template2d_mako.pxd (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => templates}/template2d_mako.pyx (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => templates}/template3d_mako.pxd (100%) rename plugins/fluidfft-builder/fluidfft_builder/{src_cy => templates}/template3d_mako.pyx (100%) diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py rename to plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/base.pyx b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/base.pyx rename to plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/cpu.pxd b/plugins/fluidfft-builder/fluidfft_builder/include_cy/cpu.pxd similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/cpu.pxd rename to plugins/fluidfft-builder/fluidfft_builder/include_cy/cpu.pxd diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/util_pyfftw.pyx b/plugins/fluidfft-builder/fluidfft_builder/include_cy/util_pyfftw.pyx similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/util_pyfftw.pyx rename to plugins/fluidfft-builder/fluidfft_builder/include_cy/util_pyfftw.pyx diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/make_files_with_mako.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/make_files_with_mako.py rename to plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile b/plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile deleted file mode 100644 index 034c037..0000000 --- a/plugins/fluidfft-builder/fluidfft_builder/src_cy/Makefile +++ /dev/null @@ -1,19 +0,0 @@ - - -.PHONY: help all clean clean_cython - -all: - python make_files_with_mako.py - -cleanall: cleancython cleanmako - -cleancython: - # remove files produced by cython - rm -f *_cy.cpp *_cy.c - -cleanmako: - # remove files produced by mako - rm -f *_cy.pyx *_pxd.pxd - -mako: - python make_files_with_mako.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py b/plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py deleted file mode 100644 index 2caa4ca..0000000 --- a/plugins/fluidfft-builder/fluidfft_builder/src_cy/tmp_2dto3d.py +++ /dev/null @@ -1,95 +0,0 @@ -import numpy as np - -from fluidfft import import_fft_class - -FFT3D = import_fft_class("fft3d.mpi_with_fftwmpi3d") -FFT2D = import_fft_class("fft2d.with_fftw2d") - - -def build_arrayX_from_2d_indices12(self, o2d, arr2d): - nX0, nX1, nX2 = self.get_shapeX_seq() - nX0loc, nX1loc, nX2loc = self.get_shapeX_loc() - - if (nX1, nX2) != o2d.get_shapeX_seq(): - raise ValueError("Not the same physical shape...") - - # check that the 2d fft is not with distributed memory... - if o2d.get_shapeX_loc() != o2d.get_shapeX_loc(): - raise ValueError("2d fft is with distributed memory...") - - if (nX1loc, nX2loc) == o2d.get_shapeX_loc(): - arr3d_loc_2dslice = arr2d - else: - raise NotImplementedError - - arr3d = np.empty([nX0loc, nX1loc, nX2loc]) - for i0 in range(nX0loc): - arr3d[i0] = arr3d_loc_2dslice - - return arr3d - - -def build_invariant_arrayK_from_2d_indices12X(self, o2d, arr2d): - nK0, nK1, nK2 = self.get_shapeK_seq() - nK0loc, nK1loc, nK2loc = self.get_shapeK_loc() - - nX0, nX1, nX2 = self.get_shapeX_seq() - - if (nX1, nX2) != o2d.get_shapeX_seq(): - raise ValueError("Not the same physical shape...") - - # check that the 2d fft is not with distributed memory... - if o2d.get_shapeX_loc() != o2d.get_shapeX_loc(): - raise ValueError("2d fft is with distributed memory...") - - ind0seq_first, ind1seq_first = self.get_seq_indices_first_K() - dimX_K = self.get_dimX_K() - - arr3d = np.zeros([nK0loc, nK1loc, nK2loc], dtype=np.complex128) - - if dimX_K == (0, 1, 2): - # simple - if (nK0, nK1, nK2) == (nK0loc, nK1loc, nK2loc): - # very simple - arr3d_loc_2dslice = arr2d - else: - raise NotImplementedError - - arr3d[0] = arr3d_loc_2dslice - - elif dimX_K == (1, 0, 2): - # like fft3d.mpi_with_fftwmpi3d - arr3d_loc_2dslice = np.zeros([nK0loc, nK2loc], dtype=np.complex128) - - for i0 in range(nK0loc): - for i2 in range(nK2loc): - i0_2d = ind0seq_first + i0 - i1_2d = i2 - arr3d_loc_2dslice[i0, i2] = arr2d[i0_2d, i1_2d] - - arr3d[:, 0, :] = arr3d_loc_2dslice - else: - raise NotImplementedError - - return arr3d - - -n = 4 - -n0 = n -n1 = 10 * n -n2 = 100 * n - -o3d = FFT3D(n0, n1, n2) -o2d = FFT2D(n1, n2) - -shapeK_loc_2d = o2d.get_shapeK_loc() - -arr2d = ( - np.arange(np.product(shapeK_loc_2d)) - .reshape(shapeK_loc_2d) - .astype(np.complex128) -) - -arr3d = build_invariant_arrayK_from_2d_indices12X(o3d, o2d, arr2d) -# arr3d = o3d.build_invariant_arrayK_from_2d_indices12X(o2d, arr2d) diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pxd similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pxd diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pyx similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/template2d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pyx diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pxd similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pxd diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pyx similarity index 100% rename from plugins/fluidfft-builder/fluidfft_builder/src_cy/template3d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pyx From ae8b044ad20f49a6bf5b41749312176d628f1f32 Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 10:16:26 +0100 Subject: [PATCH 18/36] fluidfft_fftw.fft2d.with_fftw1d working!!! --- .../fluidfft_builder/__init__.py | 11 ++ .../create_fake_mod_for_doc.py | 4 - .../fluidfft_builder/include_cy/base.pyx | 2 +- .../fluidfft_builder/make_cy_files.py | 164 +++++++----------- .../fluidfft_builder/src_cpp/cpu.h | 109 ++++++++++++ .../fluidfft_builder/src_cpp/cpu_builtin.h | 40 +++++ .../fluidfft_builder/src_cpp/mpi-compat.h | 14 ++ .../{template2d_mako.pxd => template2d.pxd} | 6 +- .../{template2d_mako.pyx => template2d.pyx} | 11 +- .../{template3d_mako.pxd => template3d.pxd} | 10 +- .../{template3d_mako.pyx => template3d.pyx} | 10 +- plugins/fluidfft-builder/pyproject.toml | 7 +- plugins/fluidfft-fftw/meson.build | 7 +- .../fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp | 2 +- .../src/fluidfft_fftw/fft2d/meson.build | 27 ++- .../src/fluidfft_fftw/meson.build | 2 +- plugins/fluidfft-fftw/tests/test_2d.py | 10 ++ 17 files changed, 295 insertions(+), 141 deletions(-) create mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cpp/cpu.h create mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cpp/cpu_builtin.h create mode 100644 plugins/fluidfft-builder/fluidfft_builder/src_cpp/mpi-compat.h rename plugins/fluidfft-builder/fluidfft_builder/templates/{template2d_mako.pxd => template2d.pxd} (88%) rename plugins/fluidfft-builder/fluidfft_builder/templates/{template2d_mako.pyx => template2d.pyx} (98%) rename plugins/fluidfft-builder/fluidfft_builder/templates/{template3d_mako.pxd => template3d.pxd} (89%) rename plugins/fluidfft-builder/fluidfft_builder/templates/{template3d_mako.pyx => template3d.pyx} (99%) create mode 100644 plugins/fluidfft-fftw/tests/test_2d.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/__init__.py index e69de29..c8bbe5c 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/__init__.py +++ b/plugins/fluidfft-builder/fluidfft_builder/__init__.py @@ -0,0 +1,11 @@ +from pathlib import Path + + +def print_include_dir(): + src_cpp = Path(__file__).absolute().parent / "src_cpp" + print(src_cpp) + + +def print_include_dir_cython(): + include_cy = Path(__file__).absolute().parent / "include_cy" + print(include_cy) diff --git a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py index 02f088e..f71a60f 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py +++ b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py @@ -110,7 +110,3 @@ def create_fake_mod(dimension): with open(os.path.join(here, name), "w") as f: f.write(code) - - -for dim in range(2, 4): - create_fake_mod(dim) diff --git a/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx index 94fe4fd..03fd979 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx @@ -1,7 +1,7 @@ # cython: embedsignature=True # cython: language_level=3 -# DEF MPI4PY = 0 +DEF MPI4PY = 0 cimport cython diff --git a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py index d7900b5..e4fef16 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py +++ b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py @@ -1,12 +1,12 @@ import os -from os.path import join from datetime import datetime +from pathlib import Path + +from jinja2 import Environment, PackageLoader -HERE = os.path.abspath(os.path.dirname(__file__)) -CURRENT_DIR = os.getcwd() def load_template(filename): - """Load template file using Mako or Jinja2. + """Load template file using Jinja2. Parameters ---------- @@ -17,33 +17,17 @@ def load_template(filename): Returns ------- - mako.Template or jinja2.Template object + jinja2.Template object """ - try: - from mako.template import Template - - except ImportError: - # Use Jinja2 to render Mako style templates - # See: http://jinja.pocoo.org/docs/2.10/switching/#mako - from jinja2 import Environment, FileSystemLoader - - env = Environment( - "<%", - "%>", - "${", - "}", - "<%doc>", - "", - "%", - "##", - loader=FileSystemLoader(HERE), - ) - print("Falling back to Jinja2 as the template library...") - return env.get_template(filename) - else: - return Template(filename=join(HERE, filename)) + env = Environment( + loader=PackageLoader("fluidfft_builder", "templates"), + # undefined=jinja2.StrictUndefined, + keep_trailing_newline=True, + ) + + return env.get_template(filename) def modification_date(filename): @@ -51,80 +35,54 @@ def modification_date(filename): return datetime.fromtimestamp(t) -def get_path_files(module_name): - path_pyx = join(CURRENT_DIR, module_name + ".pyx") - path_pxd = join(CURRENT_DIR, module_name + ".pxd") - - return path_pyx, path_pxd - - -def make_file(module_name, class_name, numpy_api): - templates = { - "fft2d_pyx": load_template("template2d_mako.pyx"), - "fft2d_pxd": load_template("template2d_mako.pxd"), - "fft3d_pyx": load_template("template3d_mako.pyx"), - "fft3d_pxd": load_template("template3d_mako.pxd"), - } - if module_name.startswith("fft2d"): - t_pyx = templates["fft2d_pyx"] - t_pxd = templates["fft2d_pxd"] - elif module_name.startswith("fft3d"): - t_pyx = templates["fft3d_pyx"] - t_pxd = templates["fft3d_pxd"] - - # Generate pyx and pxd files - for path, template in zip(get_path_files(module_name), (t_pyx, t_pxd)): - if not os.path.exists(path): - hastomake = True - else: - hastomake = modification_date(path) < modification_date( - template.filename +def make_file(path_output, class_name, numpy_api="numpy"): + if not class_name.startswith("FFT"): + raise ValueError('not module_name.startswith("fft")') + + dimension = class_name[3] + + if dimension not in "23": + raise ValueError('dimension not in "23"') + + path_output = Path(path_output) + name_output = path_output.name + module_name, extension = name_output.split(".") + + template_name = f"template{dimension}d.{extension}" + + template = load_template(template_name) + + if not path_output.exists(): + hastomake = True + else: + hastomake = modification_date(path_output) < modification_date( + template.filename + ) + + if hastomake: + path_output.write_text( + template.render( + module_name=module_name, + class_name=class_name, + numpy_api=numpy_api, ) + ) + + +def main(): + import argparse + + parser = argparse.ArgumentParser( + prog="fluidfft-builder-make-file", + description="Make Cython files for fluidfft templates", + ) + + parser.add_argument("name_output", type=str) + + parser.add_argument("class_name", type=str) + + args = parser.parse_args() + print(args) + # raise ValueError(f"{args} {CURRENT_DIR=}") - if hastomake: - with open(path, "w") as f: - f.write( - template.render( - module_name=module_name, - class_name=class_name, - numpy_api=numpy_api, - ) - ) - - -variables = ( - ("fft2d_with_fftw1d", "FFT2DWithFFTW1D", "numpy"), - ("fft2d_with_fftw2d", "FFT2DWithFFTW2D", "numpy"), - ("fft2d_with_cufft", "FFT2DWithCUFFT", "cupy"), - ("fft2dmpi_with_fftw1d", "FFT2DMPIWithFFTW1D", "numpy"), - ("fft2dmpi_with_fftwmpi2d", "FFT2DMPIWithFFTWMPI2D", "numpy"), - ("fft3d_with_fftw3d", "FFT3DWithFFTW3D", "numpy"), - ("fft3dmpi_with_fftw1d", "FFT3DMPIWithFFTW1D", "numpy"), - ("fft3dmpi_with_fftwmpi3d", "FFT3DMPIWithFFTWMPI3D", "numpy"), - ("fft3dmpi_with_pfft", "FFT3DMPIWithPFFT", "numpy"), - ("fft3dmpi_with_p3dfft", "FFT3DMPIWithP3DFFT", "numpy"), - ("fft3d_with_cufft", "FFT3DWithCUFFT", "cupy"), -) - - -def make_pyx_files(): - for module_name, class_name, numpy_api in variables: - make_file(module_name, class_name, numpy_api) - - -def _remove(path): - if os.path.exists(path): - os.remove(path) - - -def clean_files(): - for module_name, class_name, _ in variables: - path_pyx, path_pxd = get_path_files(module_name) - _remove(path_pyx) - _remove(path_pxd) - path_cpp = os.path.splitext(path_pyx)[0] + ".cpp" - _remove(path_cpp) - - -if __name__ == "__main__": - make_pyx_files() + make_file(args.name_output, args.class_name) diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/cpu.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/cpu.h new file mode 100644 index 0000000..145c853 --- /dev/null +++ b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/cpu.h @@ -0,0 +1,109 @@ +/* + * Copyright 2016 Knowledge Economy Developments Ltd + * + * Henry Gomersall + * heng@kedevelopments.co.uk + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* Small utilities for inspecting the CPU */ + +#ifndef CPU_H +#define CPU_H + +#if __STDC_VERSION__ >= 199901L + /* "inline" is a keyword */ +#else +# define INLINE +#endif + +/* See http://www.greenend.org.uk/rjk/tech/inline.html */ +#ifndef INLINE +# if __GNUC__ && !__GNUC_STDC_INLINE__ +# define INLINE static inline +# else +# define INLINE inline +# endif +#endif + +#if defined(__amd64__) || defined (_M_X64) || defined(__i386__) || defined(_M_IX86) || defined(_X86_) + + #define AVX_WORD 2 + #define AVX_BIT 28 + #define SSE_WORD 3 + #define SSE_BIT 25 + + #ifdef _MSC_VER + /* Visual Studio Code */ + #include + #define cpuid(func, cpuinfo)\ + __cpuid(cpuinfo, func); + + #else + /* generic x86 Assembly code (based on wikipedia example) + * Firstly it's necessary to move ebx into an interim + * register to protect it (cpuid clobbers eax, ebx ecx and edx) + * */ + #define cpuid(func, cpuinfo)\ + cpuinfo[0] = func; /* Load the first entry with the func id */\ + __asm__ __volatile__ \ + ("mov %%ebx, %%edi;" /* 32bit PIC: don't clobber ebx */ \ + "cpuid;" \ + "mov %%ebx, %%esi;" \ + "mov %%edi, %%ebx;" \ + :"+a" (cpuinfo[0]), "=S" (cpuinfo[1]), /* eax rw, esi read */ \ + "=c" (cpuinfo[2]), "=d" (cpuinfo[3]) /* ecx read, edx read */\ + : :"edi") + + #endif + +/* Returns the byte alignment for optimum simd operations */ +INLINE int simd_alignment(void){ + int cpuinfo[4]; + + /* This gets the cpuinfo (set by 1)*/ + cpuid(1, cpuinfo); + + if (cpuinfo[AVX_WORD] & (1< 4) + || __builtin_cpu_supports("avx512f") +#endif + ) + return 32; + else if( + __builtin_cpu_supports("sse") || + __builtin_cpu_supports("sse2") || + __builtin_cpu_supports("sse3") || + __builtin_cpu_supports("ssse3") || + __builtin_cpu_supports("sse4.1") || + __builtin_cpu_supports("sse4.2") + ) + return 16; + else + return 4; +} +#else + +int simd_alignment(void){ + return 4; +} +#endif + +#endif /* Header guard */ diff --git a/plugins/fluidfft-builder/fluidfft_builder/src_cpp/mpi-compat.h b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/mpi-compat.h new file mode 100644 index 0000000..83fbb7c --- /dev/null +++ b/plugins/fluidfft-builder/fluidfft_builder/src_cpp/mpi-compat.h @@ -0,0 +1,14 @@ +/* Author: Lisandro Dalcin */ +/* Contact: dalcinl@gmail.com */ + +#ifndef MPI_COMPAT_H +#define MPI_COMPAT_H + +#include + +#if (MPI_VERSION < 3) && !defined(PyMPI_HAVE_MPI_Message) +typedef void *PyMPI_MPI_Message; +#define MPI_Message PyMPI_MPI_Message +#endif + +#endif/*MPI_COMPAT_H*/ diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd similarity index 88% rename from plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd index 752a7f4..9ea1b1a 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd @@ -3,8 +3,8 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "${module_name}.h": - cdef cppclass ${class_name}: +cdef extern from "{{ module_name }}.h": + cdef cppclass {{ class_name }}: int test() void bench(int, double*) @@ -17,7 +17,7 @@ cdef extern from "${module_name}.h": void get_shapeX_seq(int*, int*) void get_shapeK_seq(int*, int*) - ${class_name}(int, int) except + + {{ class_name }}(int, int) except + void destroy() diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx similarity index 98% rename from plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx index 072f9f4..20aba20 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d_mako.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx @@ -4,13 +4,12 @@ include 'base.pyx' -from ${module_name} cimport ( - ${class_name} as mycppclass, +from fft2d_{{ module_name }} cimport ( + {{ class_name }} as mycppclass, mycomplex) - -cdef class ${class_name}: +cdef class {{ class_name }}: """Perform Fast Fourier Transform in 2d. Parameters @@ -66,7 +65,7 @@ cdef class ${class_name}: @property def _numpy_api(self): """A ``@property`` which imports and returns a NumPy-like array backend.""" - import ${numpy_api} as np + import {{ numpy_api }} as np return np def get_short_name(self): @@ -307,4 +306,4 @@ cdef class ${class_name}: field.fill(value) return field -FFTclass = ${class_name} +FFTclass = {{ class_name }} diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd similarity index 89% rename from plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pxd rename to plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd index 00da808..40f445d 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd @@ -3,8 +3,8 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "${module_name}.h": - cdef cppclass ${class_name}: +cdef extern from "{{ module_name }}.h": + cdef cppclass {{ class_name }}: int test() void bench(int, double*) @@ -20,8 +20,8 @@ cdef extern from "${module_name}.h": void get_dimX_K(int*, int*, int*) void get_seq_indices_first_X(int*, int*, int*) void get_seq_indices_first_K(int*, int*, int*) - - ${class_name}(int, int, int) except + + + {{ class_name }}(int, int, int) except + void destroy() @@ -33,7 +33,7 @@ cdef extern from "${module_name}.h": double sum_wavenumbers_double(double* fieldK) void sum_wavenumbers_complex(mycomplex* fieldK, mycomplex* result) - + double compute_energy_from_X(double* fieldX) double compute_energy_from_K(mycomplex* fieldK) double compute_mean_from_X(double* fieldX) diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx similarity index 99% rename from plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pyx rename to plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx index 6ec6c74..c9c7302 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d_mako.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx @@ -4,8 +4,8 @@ include 'base.pyx' -from ${module_name} cimport ( - ${class_name} as mycppclass, +from {{ module_name }} cimport ( + {{ class_name }} as mycppclass, mycomplex) @@ -32,7 +32,7 @@ def compute_k_adim_seq(nk, axis, dim_first_fft=2): return np.r_[0:k_adim_max+1, k_adim_min:0] -cdef class ${class_name}: +cdef class {{ class_name }}: """Perform Fast Fourier Transform in 3D. Parameters @@ -95,7 +95,7 @@ cdef class ${class_name}: @property def _numpy_api(self): """A ``@property`` which imports and returns a NumPy-like array backend.""" - import ${numpy_api} as np + import {{ numpy_api }} as np return np def get_short_name(self): @@ -493,4 +493,4 @@ cdef class ${class_name}: field.fill(value) return field -FFTclass = ${class_name} +FFTclass = {{ class_name }} diff --git a/plugins/fluidfft-builder/pyproject.toml b/plugins/fluidfft-builder/pyproject.toml index 9fa8656..74b4d9f 100644 --- a/plugins/fluidfft-builder/pyproject.toml +++ b/plugins/fluidfft-builder/pyproject.toml @@ -9,7 +9,12 @@ description = "Fluidfft plugin dependencies" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] license = {file = "LICENSE"} classifiers = ["License :: OSI Approved :: MIT License"] -dependencies = ["mako"] +dependencies = ["jinja2"] [project.urls] Home = "https://foss.heptapod.net/fluiddyn/fluidfft" + +[project.scripts] +fluidfft-builder-make-file = "fluidfft_builder.make_cy_files:main" +fluidfft-builder-print-include-dir = "fluidfft_builder:print_include_dir" +fluidfft-builder-print-include-dir-cython = "fluidfft_builder:print_include_dir_cython" diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index af47609..3e0a04b 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -16,8 +16,11 @@ py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() -libfftw3 = dependency('libfftw3', static: false) +fftw_dep = dependency('fftw3', static: false) -include_path_fluidfft_builder = run_command("fluidsim-build-get-include-path") +include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() +include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() + +add_project_arguments('-I', include_path_cy, language : 'cython') subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp index 186d7c7..fad4de9 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/fft2d_with_fftw1d.cpp @@ -14,7 +14,7 @@ FFT2DWithFFTW1D::FFT2DWithFFTW1D(int argN0, int argN1) : BaseFFT2D::BaseFFT2D(argN0, argN1) { struct timeval start_time, end_time; myreal total_usecs; - int iX0; + // int iX0; int istride = 1, ostride = 1; int howmany, sign; diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index e586112..ceb987b 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -1,24 +1,33 @@ py.install_sources( '__init__.py', - subdir: 'fluidfft-fftw/ftt2d' + subdir: 'fluidfft_fftw/fft2d', ) -with_fftw1d_pyx = custom_target( +pyx = custom_target( 'with_fftw1d.pyx', - command: ['fluidsim-build-make-pyx', '@OUTPUT@', 'FFT2DWithFFTW1D'] + output: 'with_fftw1d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DWithFFTW1D'], ) -with_fftw1d_pxd = custom_target( - 'with_fftw1d.pxd', - command: ['fluidsim-build-make-pxd', '@OUTPUT@', 'FFT2DWithFFTW1D'] +pxd = custom_target( + 'fft2d_with_fftw1d.pxd', + output: 'fft2d_with_fftw1d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DWithFFTW1D'], ) -# see https://mesonbuild.com/Cython.html py.extension_module( 'with_fftw1d', pyx, - dependencies: libfftw3, - install: true + pxd, + 'fft2d_with_fftw1d.cpp', + 'fft2d_with_fftw1d.h', + include_path_fluidfft_builder / 'base_fft2d.cpp', + include_path_fluidfft_builder / 'base_fft.cpp', + dependencies: fftw_dep, + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_fftw/fft2d', ) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build index b3f3729..48f3f1a 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/meson.build @@ -4,7 +4,7 @@ python_sources = [ py.install_sources( python_sources, - subdir: 'fluidfft-fftw' + subdir: 'fluidfft_fftw' ) subdir('fft2d') diff --git a/plugins/fluidfft-fftw/tests/test_2d.py b/plugins/fluidfft-fftw/tests/test_2d.py new file mode 100644 index 0000000..9a9a71d --- /dev/null +++ b/plugins/fluidfft-fftw/tests/test_2d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft2d.testing import complete_test_class_2d + + +class Tests(TestCase): + pass + + +complete_test_class_2d("fft2d.with_fftw1d", Tests) From 3ead91c8d8f0fa3bf20020afc565cdfd2db78b1b Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 10:31:23 +0100 Subject: [PATCH 19/36] fluidfft_fftw.fft3d.with_fftw3d working!!! --- .../fluidfft_builder/templates/template3d.pyx | 2 +- .../src/fluidfft_fftw/fft2d/meson.build | 1 - .../src/fluidfft_fftw/fft3d/meson.build | 34 ++++++++++++++++--- plugins/fluidfft-fftw/tests/test_3d.py | 10 ++++++ 4 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 plugins/fluidfft-fftw/tests/test_3d.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx index c9c7302..efbb637 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx @@ -4,7 +4,7 @@ include 'base.pyx' -from {{ module_name }} cimport ( +from fft3d_{{ module_name }} cimport ( {{ class_name }} as mycppclass, mycomplex) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index ceb987b..4df5db1 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -30,4 +30,3 @@ py.extension_module( install: true, subdir: 'fluidfft_fftw/fft2d', ) - diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build index 9acd1ad..f7c7c7e 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build @@ -1,8 +1,32 @@ -python_sources = [ - '__init__.py', -] py.install_sources( - python_sources, - subdir: 'fluidfft-fftw/ftt3d' + '__init__.py', + subdir: 'fluidfft_fftw/fft3d', +) + +pyx = custom_target( + 'with_fftw3d.pyx', + output: 'with_fftw3d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DWithFFTW3D'], +) + +pxd = custom_target( + 'fft3d_with_fftw3d.pxd', + output: 'fft3d_with_fftw3d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DWithFFTW3D'], +) + +py.extension_module( + 'with_fftw3d', + pyx, + pxd, + 'fft3d_with_fftw3d.cpp', + 'fft3d_with_fftw3d.h', + include_path_fluidfft_builder / 'base_fft3d.cpp', + include_path_fluidfft_builder / 'base_fft.cpp', + dependencies: fftw_dep, + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_fftw/fft3d', ) diff --git a/plugins/fluidfft-fftw/tests/test_3d.py b/plugins/fluidfft-fftw/tests/test_3d.py new file mode 100644 index 0000000..a56c212 --- /dev/null +++ b/plugins/fluidfft-fftw/tests/test_3d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft3d.testing import complete_test_class_3d + + +class Tests(TestCase): + pass + + +complete_test_class_3d("fft3d.with_fftw3d", Tests) From 1e2a45bd227172e98752c33cb0bb3a16a5ee4ab3 Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 10:43:33 +0100 Subject: [PATCH 20/36] fluidfft_fftw.fft2d.with_fftw2d --- .../src/fluidfft_fftw/fft2d/meson.build | 52 ++++++++++--------- plugins/fluidfft-fftw/tests/test_2d.py | 3 +- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index 4df5db1..04a41db 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -4,29 +4,33 @@ py.install_sources( subdir: 'fluidfft_fftw/fft2d', ) -pyx = custom_target( - 'with_fftw1d.pyx', - output: 'with_fftw1d.pyx', - command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DWithFFTW1D'], -) +foreach dim : ['1', '2'] -pxd = custom_target( - 'fft2d_with_fftw1d.pxd', - output: 'fft2d_with_fftw1d.pxd', - command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DWithFFTW1D'], -) + pyx = custom_target( + f'with_fftw@dim@d.pyx', + output: f'with_fftw@dim@d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', f'FFT2DWithFFTW@dim@D'], + ) -py.extension_module( - 'with_fftw1d', - pyx, - pxd, - 'fft2d_with_fftw1d.cpp', - 'fft2d_with_fftw1d.h', - include_path_fluidfft_builder / 'base_fft2d.cpp', - include_path_fluidfft_builder / 'base_fft.cpp', - dependencies: fftw_dep, - override_options : ['cython_language=cpp'], - include_directories: include_path_fluidfft_builder, - install: true, - subdir: 'fluidfft_fftw/fft2d', -) + pxd = custom_target( + f'fft2d_with_fftw@dim@d.pxd', + output: f'fft2d_with_fftw@dim@d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', f'FFT2DWithFFTW@dim@D'], + ) + + py.extension_module( + f'with_fftw@dim@d', + pyx, + pxd, + f'fft2d_with_fftw@dim@d.cpp', + f'fft2d_with_fftw@dim@d.h', + include_path_fluidfft_builder / 'base_fft2d.cpp', + include_path_fluidfft_builder / 'base_fft.cpp', + dependencies: fftw_dep, + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_fftw/fft2d', + ) + +endforeach \ No newline at end of file diff --git a/plugins/fluidfft-fftw/tests/test_2d.py b/plugins/fluidfft-fftw/tests/test_2d.py index 9a9a71d..2cc15ea 100644 --- a/plugins/fluidfft-fftw/tests/test_2d.py +++ b/plugins/fluidfft-fftw/tests/test_2d.py @@ -7,4 +7,5 @@ class Tests(TestCase): pass -complete_test_class_2d("fft2d.with_fftw1d", Tests) +for dim in "12": + complete_test_class_2d(f"fft2d.with_fftw{dim}d", Tests) From 910b562f937e54d3a3fc81a5e07da37c5cb4e63d Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 12:42:13 +0100 Subject: [PATCH 21/36] No need for mako or jinja2 for such simple templating --- .github/environment-windows.yml | 1 - README.md | 2 +- docker/Makefile | 2 +- pdm.lock | 12 +++--- .../create_fake_mod_for_doc.py | 2 +- .../fluidfft_builder/make_cy_files.py | 40 +++++++++---------- .../fluidfft_builder/templates/__init__.py | 0 .../fluidfft_builder/templates/template2d.pxd | 6 +-- .../fluidfft_builder/templates/template2d.pyx | 10 ++--- .../fluidfft_builder/templates/template3d.pxd | 6 +-- .../fluidfft_builder/templates/template3d.pyx | 10 ++--- plugins/fluidfft-builder/pyproject.toml | 1 - 12 files changed, 45 insertions(+), 47 deletions(-) create mode 100644 plugins/fluidfft-builder/fluidfft_builder/templates/__init__.py diff --git a/.github/environment-windows.yml b/.github/environment-windows.yml index d415f9f..c3e3e69 100644 --- a/.github/environment-windows.yml +++ b/.github/environment-windows.yml @@ -2,7 +2,6 @@ name: test dependencies: - cxx-compiler - - mako - transonic - pythran - cython diff --git a/README.md b/README.md index 0232b70..53b4328 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Click on the links to know more: 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 mako cython pyfftw pythran mpi4py` +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 diff --git a/docker/Makefile b/docker/Makefile index 24da7a3..2fa7353 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -43,7 +43,7 @@ cleanimages: @echo "Clean dangling images with no tag." for img in $$(docker images -qf "dangling=true"); do docker rmi -f $$img; done -cleanall: cleancontainers cleanimages cleanmako +cleanall: cleancontainers cleanimages run: docker run --name $(image) --restart always -it fluiddyn/$(image) bash diff --git a/pdm.lock b/pdm.lock index 80973c3..29775a9 100644 --- a/pdm.lock +++ b/pdm.lock @@ -267,13 +267,13 @@ files = [ [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" requires_python = ">=3.6" summary = "Python package for providing Mozilla's CA Bundle." groups = ["doc"] files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -2486,12 +2486,12 @@ files = [ [[package]] name = "pytz" -version = "2023.4" +version = "2024.1" summary = "World timezone definitions, modern and historical" groups = ["doc"] files = [ - {file = "pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a"}, - {file = "pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] diff --git a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py index f71a60f..dc364a6 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py +++ b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py @@ -71,7 +71,7 @@ def get_function_code(lines): def create_fake_mod(dimension): with open( - os.path.join(here, "template{dim}d_mako.pyx".format(dim=dimension)), "r" + os.path.join(here, "template{dim}d.pyx".format(dim=dimension)), "r" ) as f: lines_text = f.read().splitlines() diff --git a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py index e4fef16..cb1a5d6 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py +++ b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py @@ -1,12 +1,12 @@ import os from datetime import datetime +from importlib import resources from pathlib import Path - -from jinja2 import Environment, PackageLoader +from string import Template def load_template(filename): - """Load template file using Jinja2. + """Load template file. Parameters ---------- @@ -17,17 +17,16 @@ def load_template(filename): Returns ------- - jinja2.Template object + A `string.Template` object """ - env = Environment( - loader=PackageLoader("fluidfft_builder", "templates"), - # undefined=jinja2.StrictUndefined, - keep_trailing_newline=True, - ) + resource = resources.files("fluidfft_builder.templates") + + with resources.as_file((resource / filename)) as file: + txt = file.read_text() - return env.get_template(filename) + return Template(txt) def modification_date(filename): @@ -52,21 +51,22 @@ def make_file(path_output, class_name, numpy_api="numpy"): template = load_template(template_name) + content = template.substitute( + { + "module_name": module_name, + "class_name": class_name, + "numpy_api": numpy_api, + } + ) + if not path_output.exists(): hastomake = True else: - hastomake = modification_date(path_output) < modification_date( - template.filename - ) + content_old = path_output.read_text(encoding="utf8") + hastomake = content != content_old if hastomake: - path_output.write_text( - template.render( - module_name=module_name, - class_name=class_name, - numpy_api=numpy_api, - ) - ) + path_output.write_text(content, encoding="utf8") def main(): diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/templates/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd index 9ea1b1a..752a7f4 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd @@ -3,8 +3,8 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "{{ module_name }}.h": - cdef cppclass {{ class_name }}: +cdef extern from "${module_name}.h": + cdef cppclass ${class_name}: int test() void bench(int, double*) @@ -17,7 +17,7 @@ cdef extern from "{{ module_name }}.h": void get_shapeX_seq(int*, int*) void get_shapeK_seq(int*, int*) - {{ class_name }}(int, int) except + + ${class_name}(int, int) except + void destroy() diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx index 20aba20..b0be5dc 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx @@ -4,12 +4,12 @@ include 'base.pyx' -from fft2d_{{ module_name }} cimport ( - {{ class_name }} as mycppclass, +from fft2d_${module_name} cimport ( + ${class_name} as mycppclass, mycomplex) -cdef class {{ class_name }}: +cdef class ${class_name}: """Perform Fast Fourier Transform in 2d. Parameters @@ -65,7 +65,7 @@ cdef class {{ class_name }}: @property def _numpy_api(self): """A ``@property`` which imports and returns a NumPy-like array backend.""" - import {{ numpy_api }} as np + import ${numpy_api} as np return np def get_short_name(self): @@ -306,4 +306,4 @@ cdef class {{ class_name }}: field.fill(value) return field -FFTclass = {{ class_name }} +FFTclass = ${class_name} diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd index 40f445d..a33edb3 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd @@ -3,8 +3,8 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "{{ module_name }}.h": - cdef cppclass {{ class_name }}: +cdef extern from "${module_name}.h": + cdef cppclass ${class_name}: int test() void bench(int, double*) @@ -21,7 +21,7 @@ cdef extern from "{{ module_name }}.h": void get_seq_indices_first_X(int*, int*, int*) void get_seq_indices_first_K(int*, int*, int*) - {{ class_name }}(int, int, int) except + + ${class_name}(int, int, int) except + void destroy() diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx index efbb637..cae81c5 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx @@ -4,8 +4,8 @@ include 'base.pyx' -from fft3d_{{ module_name }} cimport ( - {{ class_name }} as mycppclass, +from fft3d_${module_name} cimport ( + ${class_name} as mycppclass, mycomplex) @@ -32,7 +32,7 @@ def compute_k_adim_seq(nk, axis, dim_first_fft=2): return np.r_[0:k_adim_max+1, k_adim_min:0] -cdef class {{ class_name }}: +cdef class ${class_name}: """Perform Fast Fourier Transform in 3D. Parameters @@ -95,7 +95,7 @@ cdef class {{ class_name }}: @property def _numpy_api(self): """A ``@property`` which imports and returns a NumPy-like array backend.""" - import {{ numpy_api }} as np + import ${numpy_api} as np return np def get_short_name(self): @@ -493,4 +493,4 @@ cdef class {{ class_name }}: field.fill(value) return field -FFTclass = {{ class_name }} +FFTclass = ${class_name} diff --git a/plugins/fluidfft-builder/pyproject.toml b/plugins/fluidfft-builder/pyproject.toml index 74b4d9f..03662f7 100644 --- a/plugins/fluidfft-builder/pyproject.toml +++ b/plugins/fluidfft-builder/pyproject.toml @@ -9,7 +9,6 @@ description = "Fluidfft plugin dependencies" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] license = {file = "LICENSE"} classifiers = ["License :: OSI Approved :: MIT License"] -dependencies = ["jinja2"] [project.urls] Home = "https://foss.heptapod.net/fluiddyn/fluidfft" From a768d262cbff065f3de1653f89b32ac9c967bf8b Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 13:03:52 +0100 Subject: [PATCH 22/36] No more Cython DEF and IF + prepare MPI --- Makefile | 10 ++-------- .../fluidfft_builder/include_cy/base.pyx | 12 ------------ .../fluidfft_builder/include_cy/base_mpi.pyx | 5 +++++ .../fluidfft_builder/make_cy_files.py | 10 +++++++++- .../fluidfft_builder/templates/template2d.pyx | 5 ++--- .../fluidfft_builder/templates/template3d.pyx | 6 +++--- plugins/fluidfft-fftw/Makefile | 3 +++ 7 files changed, 24 insertions(+), 27 deletions(-) create mode 100644 plugins/fluidfft-builder/fluidfft_builder/include_cy/base_mpi.pyx diff --git a/Makefile b/Makefile index c99e30f..52e3e05 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: clean cleanall cleanmako cleancython develop build_ext_inplace list-sessions tests +.PHONY: clean cleanall develop build_ext_inplace list-sessions tests develop: sync pdm run pip install -e . --no-deps --no-build-isolation -v @@ -17,13 +17,7 @@ cleanso: cleanpythran: find src -name __pythran__ -type d -exec rm -rf "{}" + -cleancython: - find src -name "*_cy.cpp" -delete - -cleanmako: - python -c "from fluidfft_builder.src_cy.make_files_with_mako import clean_files as c; c()" - -cleanall: clean cleanso cleanmako cleancython cleanpythran +cleanall: clean cleanso cleanpythran black: pdm run black diff --git a/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx index 03fd979..770473f 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base.pyx @@ -1,8 +1,6 @@ # cython: embedsignature=True # cython: language_level=3 -DEF MPI4PY = 0 - cimport cython from cython cimport view @@ -21,16 +19,6 @@ else: nb_proc = comm.size rank = comm.Get_rank() -IF MPI4PY: - from mpi4py cimport MPI - - #from mpi4py.mpi_c cimport * - # for mpi4py > 2.0 - from mpi4py.libmpi cimport * - - # fix a bug arising when using a recent version of mpi4py - cdef extern from 'mpi-compat.h': pass - # we define python and c types for physical and Fourier spaces DTYPEb = np.uint8 ctypedef np.uint8_t DTYPEb_t diff --git a/plugins/fluidfft-builder/fluidfft_builder/include_cy/base_mpi.pyx b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base_mpi.pyx new file mode 100644 index 0000000..e01bcd8 --- /dev/null +++ b/plugins/fluidfft-builder/fluidfft_builder/include_cy/base_mpi.pyx @@ -0,0 +1,5 @@ +from mpi4py cimport MPI +from mpi4py.libmpi cimport * + +# fix a bug arising when using a recent version of mpi4py +cdef extern from 'mpi-compat.h': pass diff --git a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py index cb1a5d6..34a4fc7 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py +++ b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py @@ -47,8 +47,14 @@ def make_file(path_output, class_name, numpy_api="numpy"): name_output = path_output.name module_name, extension = name_output.split(".") - template_name = f"template{dimension}d.{extension}" + if name_output.startswith("mpi"): + cdef_public_mpi_comm = "cdef public MPI.Comm comm" + include_base_mpi_pyx = "include 'base_mpi.pyx'" + else: + cdef_public_mpi_comm = "" + include_base_mpi_pyx = "" + template_name = f"template{dimension}d.{extension}" template = load_template(template_name) content = template.substitute( @@ -56,6 +62,8 @@ def make_file(path_output, class_name, numpy_api="numpy"): "module_name": module_name, "class_name": class_name, "numpy_api": numpy_api, + "cdef_public_mpi_comm": cdef_public_mpi_comm, + "include_base_mpi_pyx": include_base_mpi_pyx, } ) diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx index b0be5dc..bfe6dd8 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx @@ -2,7 +2,7 @@ # cython: language_level=3 include 'base.pyx' - +${include_base_mpi_pyx} from fft2d_${module_name} cimport ( ${class_name} as mycppclass, @@ -31,8 +31,7 @@ cdef class ${class_name}: cdef tuple _shapeK_loc, _shapeX_loc, _shapeK_seq, _shapeX_seq cdef int _is_mpi_lib - IF MPI4PY: - cdef public MPI.Comm comm + ${cdef_public_mpi_comm} cdef public int nb_proc, rank def __cinit__(self, int n0=2, int n1=2): diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx index cae81c5..0b06121 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx @@ -2,7 +2,7 @@ # cython: language_level=3 include 'base.pyx' - +${include_base_mpi_pyx} from fft3d_${module_name} cimport ( ${class_name} as mycppclass, @@ -60,8 +60,8 @@ cdef class ${class_name}: cdef int dim_first_fft cdef int _is_mpi_lib - IF MPI4PY: - cdef public MPI.Comm comm + ${cdef_public_mpi_comm} + cdef public int nb_proc, rank def __cinit__(self, int n0=2, int n1=2, int n2=4): diff --git a/plugins/fluidfft-fftw/Makefile b/plugins/fluidfft-fftw/Makefile index 15c5e69..0018d1f 100644 --- a/plugins/fluidfft-fftw/Makefile +++ b/plugins/fluidfft-fftw/Makefile @@ -1,3 +1,6 @@ develop: pip install -e . -vv --no-build-isolation --no-deps + +clean: + rm -rf build From e06c5530bf926b177dc6e64801c765ea254dc53c Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 15:26:31 +0100 Subject: [PATCH 23/36] fluidfft-mpi_with_fftw --- .../fluidfft_builder/make_cy_files.py | 12 +- .../fluidfft_builder/templates/template2d.pxd | 2 +- .../fluidfft_builder/templates/template2d.pyx | 2 +- .../fluidfft_builder/templates/template3d.pxd | 2 +- .../fluidfft_builder/templates/template3d.pyx | 2 +- plugins/fluidfft-fftw/LICENSE | 695 +++++++++++++++++- plugins/fluidfft-fftw/Makefile | 3 + plugins/fluidfft-fftw/README.md | 4 + plugins/fluidfft-fftw/meson.build | 3 +- plugins/fluidfft-fftw/pyproject.toml | 1 + plugins/fluidfft-mpi_with_fftw/LICENSE | 674 +++++++++++++++++ plugins/fluidfft-mpi_with_fftw/Makefile | 9 + plugins/fluidfft-mpi_with_fftw/README.md | 4 + plugins/fluidfft-mpi_with_fftw/meson.build | 26 + plugins/fluidfft-mpi_with_fftw/pyproject.toml | 23 + .../src/fluidfft_mpi_with_fftw/__init__.py | 0 .../fluidfft_mpi_with_fftw/fft2d/__init__.py | 0 .../fft2d}/fft2dmpi_with_fftw1d.cpp | 0 .../fft2d}/fft2dmpi_with_fftw1d.h | 0 .../fluidfft_mpi_with_fftw/fft2d/meson.build | 34 + .../fluidfft_mpi_with_fftw/fft3d/__init__.py | 0 .../fft3d}/fft3dmpi_with_fftw1d.cpp | 0 .../fft3d}/fft3dmpi_with_fftw1d.h | 0 .../fluidfft_mpi_with_fftw/fft3d/meson.build | 35 + .../src/fluidfft_mpi_with_fftw/meson.build | 8 + .../fluidfft-mpi_with_fftw/tests/test_2d.py | 10 + .../fluidfft-mpi_with_fftw/tests/test_3d.py | 10 + pyproject.toml | 30 +- 28 files changed, 1540 insertions(+), 49 deletions(-) create mode 100644 plugins/fluidfft-fftw/README.md create mode 100644 plugins/fluidfft-mpi_with_fftw/LICENSE create mode 100644 plugins/fluidfft-mpi_with_fftw/Makefile create mode 100644 plugins/fluidfft-mpi_with_fftw/README.md create mode 100644 plugins/fluidfft-mpi_with_fftw/meson.build create mode 100644 plugins/fluidfft-mpi_with_fftw/pyproject.toml create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/__init__.py create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/__init__.py rename plugins/fluidfft-mpi_with_fftw/{ => src/fluidfft_mpi_with_fftw/fft2d}/fft2dmpi_with_fftw1d.cpp (100%) rename plugins/fluidfft-mpi_with_fftw/{ => src/fluidfft_mpi_with_fftw/fft2d}/fft2dmpi_with_fftw1d.h (100%) create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/__init__.py rename plugins/fluidfft-mpi_with_fftw/{ => src/fluidfft_mpi_with_fftw/fft3d}/fft3dmpi_with_fftw1d.cpp (100%) rename plugins/fluidfft-mpi_with_fftw/{ => src/fluidfft_mpi_with_fftw/fft3d}/fft3dmpi_with_fftw1d.h (100%) create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build create mode 100644 plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/meson.build create mode 100644 plugins/fluidfft-mpi_with_fftw/tests/test_2d.py create mode 100644 plugins/fluidfft-mpi_with_fftw/tests/test_3d.py diff --git a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py index 34a4fc7..e2e744a 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py +++ b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py @@ -47,12 +47,21 @@ def make_file(path_output, class_name, numpy_api="numpy"): name_output = path_output.name module_name, extension = name_output.split(".") - if name_output.startswith("mpi"): + if extension == "pxd": + module_name = module_name[5:] + if module_name.startswith("_"): + module_name = module_name[1:] + + cpp_name = f"fft{dimension}d" + if module_name.startswith("mpi"): cdef_public_mpi_comm = "cdef public MPI.Comm comm" include_base_mpi_pyx = "include 'base_mpi.pyx'" else: cdef_public_mpi_comm = "" include_base_mpi_pyx = "" + cpp_name += "_" + + cpp_name += module_name template_name = f"template{dimension}d.{extension}" template = load_template(template_name) @@ -60,6 +69,7 @@ def make_file(path_output, class_name, numpy_api="numpy"): content = template.substitute( { "module_name": module_name, + "cpp_name": cpp_name, "class_name": class_name, "numpy_api": numpy_api, "cdef_public_mpi_comm": cdef_public_mpi_comm, diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd index 752a7f4..f18f229 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pxd @@ -3,7 +3,7 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "${module_name}.h": +cdef extern from "${cpp_name}.h": cdef cppclass ${class_name}: int test() void bench(int, double*) diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx index bfe6dd8..c8d3c98 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx @@ -4,7 +4,7 @@ include 'base.pyx' ${include_base_mpi_pyx} -from fft2d_${module_name} cimport ( +from ${cpp_name} cimport ( ${class_name} as mycppclass, mycomplex) diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd index a33edb3..4ce4c34 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pxd @@ -3,7 +3,7 @@ cdef extern from "base_fft.h": ctypedef struct mycomplex: pass -cdef extern from "${module_name}.h": +cdef extern from "${cpp_name}.h": cdef cppclass ${class_name}: int test() void bench(int, double*) diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx index 0b06121..12e161f 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template3d.pyx @@ -4,7 +4,7 @@ include 'base.pyx' ${include_base_mpi_pyx} -from fft3d_${module_name} cimport ( +from ${cpp_name} cimport ( ${class_name} as mycppclass, mycomplex) diff --git a/plugins/fluidfft-fftw/LICENSE b/plugins/fluidfft-fftw/LICENSE index 4687304..f288702 100644 --- a/plugins/fluidfft-fftw/LICENSE +++ b/plugins/fluidfft-fftw/LICENSE @@ -1,21 +1,674 @@ -The MIT License (MIT) - -Copyright (c) 2024 Pierre Augier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/plugins/fluidfft-fftw/Makefile b/plugins/fluidfft-fftw/Makefile index 0018d1f..d803aeb 100644 --- a/plugins/fluidfft-fftw/Makefile +++ b/plugins/fluidfft-fftw/Makefile @@ -4,3 +4,6 @@ develop: clean: rm -rf build + +test: + pytest -v -s tests diff --git a/plugins/fluidfft-fftw/README.md b/plugins/fluidfft-fftw/README.md new file mode 100644 index 0000000..fa74a31 --- /dev/null +++ b/plugins/fluidfft-fftw/README.md @@ -0,0 +1,4 @@ +# Fluidfft plugin using FFTW3 + +This plugin provides three methods for sequential FFTs using FFTW3: +`fft2d.with_fftw1d`, `fft2d.with_fftw2d` and `fft3d.with_fftw3d`. diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index 3e0a04b..a9519bf 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -11,7 +11,6 @@ project( ], ) -# https://mesonbuild.com/Python-module.html py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() @@ -19,8 +18,8 @@ py_dep = py.dependency() fftw_dep = dependency('fftw3', static: false) include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() -include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() add_project_arguments('-I', include_path_cy, language : 'cython') subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index 887e154..0c586cb 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -12,6 +12,7 @@ authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.f license = {file = "LICENSE"} classifiers = ["License :: OSI Approved :: MIT License"] dependencies = ["fluidfft"] +readme = "README.md" [project.urls] Home = "https://foss.heptapod.net/fluiddyn/fluidfft" diff --git a/plugins/fluidfft-mpi_with_fftw/LICENSE b/plugins/fluidfft-mpi_with_fftw/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/plugins/fluidfft-mpi_with_fftw/Makefile b/plugins/fluidfft-mpi_with_fftw/Makefile new file mode 100644 index 0000000..a70846b --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/Makefile @@ -0,0 +1,9 @@ + +develop: + pip install -e . -vv --no-build-isolation --no-deps + +clean: + rm -rf build + +test: + mpirun -np 2 pytest --exitfirst -v diff --git a/plugins/fluidfft-mpi_with_fftw/README.md b/plugins/fluidfft-mpi_with_fftw/README.md new file mode 100644 index 0000000..519742f --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/README.md @@ -0,0 +1,4 @@ +# Fluidfft plugin for parallel FFTs using FFTW3 + +This plugin provides two methods for parallel FFTs using FFTW3: +`fft2d.mpi_with_fftw1d` and `fft3d.mpi_with_fftw1d` diff --git a/plugins/fluidfft-mpi_with_fftw/meson.build b/plugins/fluidfft-mpi_with_fftw/meson.build new file mode 100644 index 0000000..44e0159 --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/meson.build @@ -0,0 +1,26 @@ +project( + 'fluidfft-mpi_with_fftw', + 'cpp', + 'cython', + license: 'CeCILL', + meson_version: '>= 1.1.0', + default_options: [ + 'buildtype=release', + 'c_std=c99', + 'cpp_std=c++11', + ], +) + +py_mod = import('python') +py = py_mod.find_installation('python3', pure: false) +py_dep = py.dependency() + +fftw_dep = dependency('fftw3', static: false) +mpi_dep = dependency('mpi', language: 'cpp') + +include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() + +include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +add_project_arguments('-I', include_path_cy, language : 'cython') + +subdir('src/fluidfft_mpi_with_fftw') diff --git a/plugins/fluidfft-mpi_with_fftw/pyproject.toml b/plugins/fluidfft-mpi_with_fftw/pyproject.toml new file mode 100644 index 0000000..338e48d --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/pyproject.toml @@ -0,0 +1,23 @@ +[build-system] +requires = [ + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py" +] +build-backend = 'mesonpy' + +[project] +name = "fluidfft-mpi_with_fftw" +version = "0.0.1" +description = "Fluidfft plugin for MPI FFTs using fftw" +authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] +license = {file = "LICENSE"} +classifiers = ["License :: OSI Approved :: MIT License"] +dependencies = ["fluidfft"] +readme = "README.md" + +[project.urls] +Home = "https://foss.heptapod.net/fluiddyn/fluidfft" + +[project.entry-points."fluidfft.plugins"] + +"fft2d.mpi_with_fftw1d" = "fluidfft_mpi_with_fftw.fft2d.mpi_with_fftw1d" +"fft3d.mpi_with_fftw1d" = "fluidfft_mpi_with_fftw.fft3d.mpi_with_fftw1d" diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/__init__.py b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/__init__.py b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.cpp b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/fft2dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.cpp rename to plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/fft2dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.h b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/fft2dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-mpi_with_fftw/fft2dmpi_with_fftw1d.h rename to plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/fft2dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build new file mode 100644 index 0000000..dcf5f16 --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build @@ -0,0 +1,34 @@ + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_mpi_with_fftw/fft2d', +) + +pyx = custom_target( + 'mpi_with_fftw1d.pyx', + output: 'mpi_with_fftw1d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DMPIWithFFTW1D'], +) + +pxd = custom_target( + 'fft2dmpi_with_fftw1d.pxd', + output: 'fft2dmpi_with_fftw1d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DMPIWithFFTW1D'], +) + +py.extension_module( + 'mpi_with_fftw1d', + pyx, + pxd, + 'fft2dmpi_with_fftw1d.cpp', + 'fft2dmpi_with_fftw1d.h', + include_path_fluidfft_builder / 'base_fft.cpp', + include_path_fluidfft_builder / 'base_fft2d.cpp', + include_path_fluidfft_builder / 'base_fftmpi.cpp', + include_path_fluidfft_builder / 'base_fft2dmpi.cpp', + dependencies: [fftw_dep, mpi_dep], + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_mpi_with_fftw/fft2d', +) diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/__init__.py b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.cpp b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/fft3dmpi_with_fftw1d.cpp similarity index 100% rename from plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.cpp rename to plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/fft3dmpi_with_fftw1d.cpp diff --git a/plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.h b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/fft3dmpi_with_fftw1d.h similarity index 100% rename from plugins/fluidfft-mpi_with_fftw/fft3dmpi_with_fftw1d.h rename to plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/fft3dmpi_with_fftw1d.h diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build new file mode 100644 index 0000000..e2b0dc4 --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build @@ -0,0 +1,35 @@ + + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_mpi_with_fftw/fft3d', +) + +pyx = custom_target( + 'mpi_with_fftw1d.pyx', + output: 'mpi_with_fftw1d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DMPIWithFFTW1D'], +) + +pxd = custom_target( + 'fft3dmpi_with_fftw1d.pxd', + output: 'fft3dmpi_with_fftw1d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DMPIWithFFTW1D'], +) + +py.extension_module( + 'mpi_with_fftw1d', + pyx, + pxd, + 'fft3dmpi_with_fftw1d.cpp', + 'fft3dmpi_with_fftw1d.h', + include_path_fluidfft_builder / 'base_fft.cpp', + include_path_fluidfft_builder / 'base_fft3d.cpp', + include_path_fluidfft_builder / 'base_fftmpi.cpp', + include_path_fluidfft_builder / 'base_fft3dmpi.cpp', + dependencies: [fftw_dep, mpi_dep], + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_mpi_with_fftw/fft3d', +) diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/meson.build b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/meson.build new file mode 100644 index 0000000..27d175f --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/meson.build @@ -0,0 +1,8 @@ + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_mpi_with_fftw' +) + +subdir('fft2d') +subdir('fft3d') diff --git a/plugins/fluidfft-mpi_with_fftw/tests/test_2d.py b/plugins/fluidfft-mpi_with_fftw/tests/test_2d.py new file mode 100644 index 0000000..99adf7f --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/tests/test_2d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft2d.testing import complete_test_class_2d + + +class Tests(TestCase): + pass + + +complete_test_class_2d("fft2d.mpi_with_fftw1d", Tests) diff --git a/plugins/fluidfft-mpi_with_fftw/tests/test_3d.py b/plugins/fluidfft-mpi_with_fftw/tests/test_3d.py new file mode 100644 index 0000000..0020532 --- /dev/null +++ b/plugins/fluidfft-mpi_with_fftw/tests/test_3d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft3d.testing import complete_test_class_3d + + +class Tests(TestCase): + pass + + +complete_test_class_3d("fft3d.mpi_with_fftw1d", Tests) diff --git a/pyproject.toml b/pyproject.toml index 933d124..fcdd97f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,12 +42,9 @@ classifiers = [ Homepage = "https://foss.heptapod.net/fluiddyn/fluidfft" [project.optional-dependencies] -pyfftw = [ - "pyfftw >= 0.10.4", -] -mpi = [ - "mpi4py", -] +pyfftw = ["pyfftw >= 0.10.4"] +dask = ["dask"] +mpi = ["mpi4py"] [project.scripts] fluidfft-bench = "fluidfft.bench:run" @@ -59,24 +56,15 @@ fluidfft-bench-analysis = "fluidfft.bench_analysis:run" # "fft3d.with_pyfftw" = "fluidfft.fft3d.with_pyfftw" "fft2d.with_dask" = "fluidfft.fft2d.with_dask" -# should be in fluidfft-cuda -# (or better HIP?, see https://foss.heptapod.net/fluiddyn/fluidfft/-/merge_requests/46) -"fft2d.with_cufft" = "fluidfft.fft2d.with_cufft" -"fft3d.with_cufft" = "fluidfft.fft3d.with_cufft" - -# should be in fluidfft-mpi_with_fftw -"fft2d.mpi_with_fftw1d" = "fluidfft.fft2d.mpi_with_fftw1d" -"fft3d.mpi_with_fftw1d" = "fluidfft.fft3d.mpi_with_fftw1d" - # should be in fluidfft-fftwmpi -"fft2d.mpi_with_fftwmpi2d" = "fluidfft.fft2d.mpi_with_fftwmpi2d" -"fft3d.mpi_with_fftwmpi3d" = "fluidfft.fft3d.mpi_with_fftwmpi3d" +# "fft2d.mpi_with_fftwmpi2d" = "fluidfft.fft2d.mpi_with_fftwmpi2d" +# "fft3d.mpi_with_fftwmpi3d" = "fluidfft.fft3d.mpi_with_fftwmpi3d" # should be in fluidfft-p3dfft -"fft3d.mpi_with_p3dfft" = "fluidfft.fft3d.mpi_with_p3dfft" +# "fft3d.mpi_with_p3dfft" = "fluidfft.fft3d.mpi_with_p3dfft" # should be in fluidfft-pfft -"fft3d.mpi_with_pfft" = "fluidfft.fft3d.mpi_with_pfft" +# "fft3d.mpi_with_pfft" = "fluidfft.fft3d.mpi_with_pfft" [tool.pdm] distribution = true @@ -112,7 +100,7 @@ doc = [ lint = ["black", "pylint"] [tool.pdm.scripts] -black = 'black -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' -black_check = 'black --check -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|doc/_build|\.ipynb_checkpoints/*)/"' +black = 'black -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|build|doc/_build|\.ipynb_checkpoints/*)/"' +black_check = 'black --check -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|build|doc/_build|\.ipynb_checkpoints/*)/"' lint = {shell="pylint -rn --rcfile=pylintrc --jobs=$(nproc) src doc tests plugins --exit-zero"} validate_code = {composite = ["black_check", "lint"]} From 2f5f106013f1c7af01b3e53044cf04c2ce57eada Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 15:55:29 +0100 Subject: [PATCH 24/36] Byebye fluidfft-pyfftw + cleanup --- .gitlab-ci.yml | 2 -- MANIFEST.in | 5 ----- Makefile | 5 ++++- make_default_config.py | 3 --- noxfile.py | 4 +++- plugins/fluidfft-pyfftw/LICENSE | 21 ------------------- plugins/fluidfft-pyfftw/pyproject.toml | 20 ------------------ .../src/fluidfft_pyfftw/__init__.py | 0 .../fluidfft-pyfftw/tests/test_with_pyfftw.py | 12 ----------- plugins/pure_cpp/2d/test_bench.cpp | 3 --- plugins/pure_cpp/3d/test_bench.cpp | 8 ------- pyproject.toml | 5 ++--- src/fluidfft/fft2d/__init__.py | 1 - src/fluidfft/fft2d/meson.build | 1 + .../fluidfft/fft2d/with_pyfftw.py | 0 src/fluidfft/fft3d/meson.build | 1 + .../fluidfft/fft3d/with_pyfftw.py | 0 tests/test_2d.py | 4 ++-- tests/test_3d.py | 2 +- tests/test_plugins.py | 14 ++++++------- 20 files changed, 20 insertions(+), 91 deletions(-) delete mode 100644 MANIFEST.in delete mode 100644 make_default_config.py delete mode 100644 plugins/fluidfft-pyfftw/LICENSE delete mode 100644 plugins/fluidfft-pyfftw/pyproject.toml delete mode 100644 plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/__init__.py delete mode 100644 plugins/fluidfft-pyfftw/tests/test_with_pyfftw.py rename plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft2d.py => src/fluidfft/fft2d/with_pyfftw.py (100%) rename plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft3d.py => src/fluidfft/fft3d/with_pyfftw.py (100%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 76d3a30..9317c32 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,7 +85,6 @@ tests_seq: - job: "image:build" optional: true script: - # - cp site.cfg.files/site.cfg.docker_seq site.cfg - nox -s "tests(with_cov=True, with_mpi=False)" @@ -95,7 +94,6 @@ tests_mpi: - job: "image:build" optional: true script: - # - cp site.cfg.files/site.cfg.docker_mpi site.cfg - nox -s "tests(with_cov=True, with_mpi=True)" diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index f43e833..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,5 +0,0 @@ -include *.py -include *.txt -include *.rst -recursive-include doc *.rst -recursive-include include *.h diff --git a/Makefile b/Makefile index 52e3e05..028ef4c 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,10 @@ develop: sync pdm run pip install -e . --no-deps --no-build-isolation -v - pdm run pip install -e plugins/fluidfft-pyfftw + pdm run pip install -e plugins/fluidfft-fftw --no-build-isolation -v + +develop_mpi_with_fftw: + pdm run pip install -e plugins/fluidfft-mpi_with_fftw --no-build-isolation -v sync: pdm sync --clean --no-self diff --git a/make_default_config.py b/make_default_config.py deleted file mode 100644 index 6bddc95..0000000 --- a/make_default_config.py +++ /dev/null @@ -1,3 +0,0 @@ -from setup_config import make_site_cfg_default_file - -make_site_cfg_default_file() diff --git a/noxfile.py b/noxfile.py index a38f262..225735a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -56,8 +56,10 @@ def tests(session, with_mpi, with_cov): ) session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) - session.install("-e", "plugins/fluidfft-pyfftw") session.install("-e", "plugins/fluidfft-builder") + session.install("-e", "plugins/fluidfft-fftw") + if with_mpi: + session.install("-e", "plugins/fluidfft-mpi_with_fftw") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) diff --git a/plugins/fluidfft-pyfftw/LICENSE b/plugins/fluidfft-pyfftw/LICENSE deleted file mode 100644 index 4687304..0000000 --- a/plugins/fluidfft-pyfftw/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2024 Pierre Augier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/plugins/fluidfft-pyfftw/pyproject.toml b/plugins/fluidfft-pyfftw/pyproject.toml deleted file mode 100644 index 9e48698..0000000 --- a/plugins/fluidfft-pyfftw/pyproject.toml +++ /dev/null @@ -1,20 +0,0 @@ -[build-system] -requires = ["flit_core >=3.2,<4"] -build-backend = "flit_core.buildapi" - -[project] -name = "fluidfft_pyfftw" -version = "0.0.1" -description = "Fluidfft plugin using pyfftw" -authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] -license = {file = "LICENSE"} -classifiers = ["License :: OSI Approved :: MIT License"] -dependencies = ["fluidfft", "pyfftw"] - -[project.urls] -Home = "https://foss.heptapod.net/fluiddyn/fluidfft" - -[project.entry-points."fluidfft.plugins"] - -"fft2d.with_pyfftw" = "fluidfft_pyfftw.fft2d" -"fft3d.with_pyfftw" = "fluidfft_pyfftw.fft3d" diff --git a/plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/__init__.py b/plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/plugins/fluidfft-pyfftw/tests/test_with_pyfftw.py b/plugins/fluidfft-pyfftw/tests/test_with_pyfftw.py deleted file mode 100644 index 9157695..0000000 --- a/plugins/fluidfft-pyfftw/tests/test_with_pyfftw.py +++ /dev/null @@ -1,12 +0,0 @@ -from unittest import TestCase - -from fluidfft.fft3d.testing import complete_test_class_3d -from fluidfft.fft2d.testing import complete_test_class_2d - - -class Tests(TestCase): - pass - - -complete_test_class_2d("fft2d.with_pyfftw", Tests) -complete_test_class_3d("fft3d.with_pyfftw", Tests) diff --git a/plugins/pure_cpp/2d/test_bench.cpp b/plugins/pure_cpp/2d/test_bench.cpp index ddb4796..ccfacb9 100644 --- a/plugins/pure_cpp/2d/test_bench.cpp +++ b/plugins/pure_cpp/2d/test_bench.cpp @@ -12,9 +12,6 @@ using namespace std; #endif #include -#ifdef CUDA -#include -#endif const int N0default = 16, N1default = 16; void parse_args(int nb_args, char **argv, int &N0, int &N1) { diff --git a/plugins/pure_cpp/3d/test_bench.cpp b/plugins/pure_cpp/3d/test_bench.cpp index 8ca1363..d2bd413 100644 --- a/plugins/pure_cpp/3d/test_bench.cpp +++ b/plugins/pure_cpp/3d/test_bench.cpp @@ -82,14 +82,6 @@ int main(int argc, char **argv) { s4.bench(nt, times); s4.destroy(); -#ifdef CUDA - FFT3DWithCUFFT s5(N0, N1, N2); - s5.test(); - s5.bench(nt, times); - s5.bench(nt, times); - s5.destroy(); -#endif - } else { #ifdef P3DFFT FFT3DMPIWithP3DFFT s2(N0, N1, N2); s2.test(); diff --git a/pyproject.toml b/pyproject.toml index fcdd97f..cbc199f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,9 +51,8 @@ fluidfft-bench = "fluidfft.bench:run" fluidfft-bench-analysis = "fluidfft.bench_analysis:run" [project.entry-points."fluidfft.plugins"] -# TODO: uncomment when code using pyfftw is back in fluidfft -# "fft2d.with_pyfftw" = "fluidfft.fft2d.with_pyfftw" -# "fft3d.with_pyfftw" = "fluidfft.fft3d.with_pyfftw" +"fft2d.with_pyfftw" = "fluidfft.fft2d.with_pyfftw" +"fft3d.with_pyfftw" = "fluidfft.fft3d.with_pyfftw" "fft2d.with_dask" = "fluidfft.fft2d.with_dask" # should be in fluidfft-fftwmpi diff --git a/src/fluidfft/fft2d/__init__.py b/src/fluidfft/fft2d/__init__.py index f269cb0..088993f 100644 --- a/src/fluidfft/fft2d/__init__.py +++ b/src/fluidfft/fft2d/__init__.py @@ -8,7 +8,6 @@ - :class:`fluidfft.fft2d.with_fftw1d.FFT2DWithFFTW1D` - :class:`fluidfft.fft2d.with_fftw2d.FFT2DWithFFTW2D` -- :class:`fluidfft.fft2d.with_cufft.FFT2DWithCUFFT` - :class:`fluidfft.fft2d.mpi_with_fftwmpi2d.FFT2DMPIWithFFTW1D` - :class:`fluidfft.fft2d.mpi_with_fftwmpi2d.FFT2DMPIWithFFTWMPI2D` diff --git a/src/fluidfft/fft2d/meson.build b/src/fluidfft/fft2d/meson.build index 75acc0a..6736548 100644 --- a/src/fluidfft/fft2d/meson.build +++ b/src/fluidfft/fft2d/meson.build @@ -1,6 +1,7 @@ python_sources = [ '__init__.py', 'operators.py', + 'with_pyfftw.py', 'with_dask.py', 'testing.py', ] diff --git a/plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft2d.py b/src/fluidfft/fft2d/with_pyfftw.py similarity index 100% rename from plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft2d.py rename to src/fluidfft/fft2d/with_pyfftw.py diff --git a/src/fluidfft/fft3d/meson.build b/src/fluidfft/fft3d/meson.build index 43642e5..cf93d66 100644 --- a/src/fluidfft/fft3d/meson.build +++ b/src/fluidfft/fft3d/meson.build @@ -3,6 +3,7 @@ python_sources = [ 'base.py', 'operators.py', 'testing.py', + 'with_pyfftw.py', ] py.install_sources( diff --git a/plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft3d.py b/src/fluidfft/fft3d/with_pyfftw.py similarity index 100% rename from plugins/fluidfft-pyfftw/src/fluidfft_pyfftw/fft3d.py rename to src/fluidfft/fft3d/with_pyfftw.py diff --git a/tests/test_2d.py b/tests/test_2d.py index 10ff8e3..8d99a2a 100644 --- a/tests/test_2d.py +++ b/tests/test_2d.py @@ -8,7 +8,7 @@ from fluidfft.fft2d.testing import complete_test_class_2d try: - import fluidfft.fft2d.with_fftw2d + import fluidfft_fftw.fft2d.with_fftw2d except ImportError: # If this one does not work it is a bad sign so we want to know what happened. traceback.print_exc() @@ -23,7 +23,7 @@ def test_get_classes(): nb_proc = mpi.nb_proc -methods_seq = ["fftw1d", "fftw2d", "cufft", "pyfftw"] +methods_seq = ["fftw1d", "fftw2d", "pyfftw"] methods_seq = ["fft2d.with_" + method for method in methods_seq] classes_seq = { method: import_fft_class(method, raise_import_error=False) diff --git a/tests/test_3d.py b/tests/test_3d.py index fc9c81a..e2040cc 100644 --- a/tests/test_3d.py +++ b/tests/test_3d.py @@ -8,7 +8,7 @@ from fluidfft.fft3d.testing import complete_test_class_3d try: - import fluidfft.fft3d.with_fftw3d + import fluidfft_fftw.fft3d.with_fftw3d except ImportError: # If this one does not work it is a bad sign so we want to know what appends. traceback.print_exc() diff --git a/tests/test_plugins.py b/tests/test_plugins.py index a2603a7..eb82e99 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -6,7 +6,6 @@ [ "fft2d.with_fftw1d", "fft2d.with_fftw2d", - "fft2d.with_cufft", "fft2d.with_pyfftw", "fft2d.with_dask", ] @@ -14,22 +13,21 @@ (2, False): set( [ "fft2d.mpi_with_fftw1d", - "fft2d.mpi_with_fftwmpi2d", + # "fft2d.mpi_with_fftwmpi2d", ] ), (3, True): set( [ "fft3d.with_fftw3d", "fft3d.with_pyfftw", - "fft3d.with_cufft", ] ), (3, False): set( [ "fft3d.mpi_with_fftw1d", - "fft3d.mpi_with_fftwmpi3d", - "fft3d.mpi_with_p3dfft", - "fft3d.mpi_with_pfft", + # "fft3d.mpi_with_fftwmpi3d", + # "fft3d.mpi_with_p3dfft", + # "fft3d.mpi_with_pfft", ] ), } @@ -40,8 +38,8 @@ def test_plugins(): assert plugins for ndim in (2, 3): - assert get_methods(ndim=ndim) == methodss[(ndim, True)].union( - methodss[(ndim, False)] + assert sorted(get_methods(ndim=ndim)) == sorted( + methodss[(ndim, True)].union(methodss[(ndim, False)]) ) for sequential in (True, False): assert methodss[(ndim, sequential)] == get_methods( From ee32b4336418e736385a05898a81a70845e46990 Mon Sep 17 00:00:00 2001 From: paugier Date: Fri, 2 Feb 2024 17:17:47 +0100 Subject: [PATCH 25/36] fluidfft-fftwmpi --- plugins/fluidfft-fftwmpi/LICENSE | 674 ++++++++++++++++++ plugins/fluidfft-fftwmpi/Makefile | 9 + plugins/fluidfft-fftwmpi/README.md | 4 + plugins/fluidfft-fftwmpi/meson.build | 34 + plugins/fluidfft-fftwmpi/pyproject.toml | 23 + .../src/fluidfft_fftwmpi/__init__.py | 0 .../src/fluidfft_fftwmpi/fft2d/__init__.py | 0 .../fft2d}/fft2dmpi_with_fftwmpi2d.cpp | 0 .../fft2d}/fft2dmpi_with_fftwmpi2d.h | 0 .../src/fluidfft_fftwmpi/fft2d/meson.build | 35 + .../src/fluidfft_fftwmpi/fft3d/__init__.py | 0 .../fft3d}/fft3dmpi_with_fftwmpi3d.cpp | 0 .../fft3d}/fft3dmpi_with_fftwmpi3d.h | 0 .../src/fluidfft_fftwmpi/fft3d/meson.build | 35 + .../src/fluidfft_fftwmpi/meson.build | 8 + plugins/fluidfft-fftwmpi/tests/test_2d.py | 10 + plugins/fluidfft-fftwmpi/tests/test_3d.py | 10 + pyproject.toml | 4 - 18 files changed, 842 insertions(+), 4 deletions(-) create mode 100644 plugins/fluidfft-fftwmpi/LICENSE create mode 100644 plugins/fluidfft-fftwmpi/Makefile create mode 100644 plugins/fluidfft-fftwmpi/README.md create mode 100644 plugins/fluidfft-fftwmpi/meson.build create mode 100644 plugins/fluidfft-fftwmpi/pyproject.toml create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/__init__.py create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/__init__.py rename plugins/fluidfft-fftwmpi/{ => src/fluidfft_fftwmpi/fft2d}/fft2dmpi_with_fftwmpi2d.cpp (100%) rename plugins/fluidfft-fftwmpi/{ => src/fluidfft_fftwmpi/fft2d}/fft2dmpi_with_fftwmpi2d.h (100%) create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/meson.build create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/__init__.py rename plugins/fluidfft-fftwmpi/{ => src/fluidfft_fftwmpi/fft3d}/fft3dmpi_with_fftwmpi3d.cpp (100%) rename plugins/fluidfft-fftwmpi/{ => src/fluidfft_fftwmpi/fft3d}/fft3dmpi_with_fftwmpi3d.h (100%) create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/meson.build create mode 100644 plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/meson.build create mode 100644 plugins/fluidfft-fftwmpi/tests/test_2d.py create mode 100644 plugins/fluidfft-fftwmpi/tests/test_3d.py diff --git a/plugins/fluidfft-fftwmpi/LICENSE b/plugins/fluidfft-fftwmpi/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/plugins/fluidfft-fftwmpi/Makefile b/plugins/fluidfft-fftwmpi/Makefile new file mode 100644 index 0000000..a70846b --- /dev/null +++ b/plugins/fluidfft-fftwmpi/Makefile @@ -0,0 +1,9 @@ + +develop: + pip install -e . -vv --no-build-isolation --no-deps + +clean: + rm -rf build + +test: + mpirun -np 2 pytest --exitfirst -v diff --git a/plugins/fluidfft-fftwmpi/README.md b/plugins/fluidfft-fftwmpi/README.md new file mode 100644 index 0000000..6f85454 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/README.md @@ -0,0 +1,4 @@ +# Fluidfft plugin for parallel FFTs using FFTW3 (libfftw_mpi) + +This plugin provides two methods for parallel FFTs using FFTW3: +`fft2d.mpi_with_fftwmpi2d` and `fft3d.mpi_with_fftwmpi3d`. diff --git a/plugins/fluidfft-fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/meson.build new file mode 100644 index 0000000..df84dde --- /dev/null +++ b/plugins/fluidfft-fftwmpi/meson.build @@ -0,0 +1,34 @@ +project( + 'fluidfft-fftwmpi', + 'cpp', + 'cython', + license: 'CeCILL', + meson_version: '>= 1.1.0', + default_options: [ + 'buildtype=release', + 'c_std=c99', + 'cpp_std=c++11', + ], +) + +py_mod = import('python') +py = py_mod.find_installation('python3', pure: false) +py_dep = py.dependency() + +fftw_dep = dependency('fftw3', static: false) +mpi_dep = dependency('mpi', language: 'cpp') +# no fftw3-mpi.pc file, see https://github.com/FFTW/fftw3/issues/57 +# fftwmpi_dep = dependency('fftw3-mpi', static: false) + +compiler = meson.get_compiler('cpp') +fftwmpi_dep = compiler.find_library('libfftw_mpi', required: true) + +dependencies = [fftw_dep, mpi_dep, fftwmpi_dep] +link_args = ['-lfftw3_mpi'] + +include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() + +include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +add_project_arguments('-I', include_path_cy, language : 'cython') + +subdir('src/fluidfft_fftwmpi') diff --git a/plugins/fluidfft-fftwmpi/pyproject.toml b/plugins/fluidfft-fftwmpi/pyproject.toml new file mode 100644 index 0000000..78792bc --- /dev/null +++ b/plugins/fluidfft-fftwmpi/pyproject.toml @@ -0,0 +1,23 @@ +[build-system] +requires = [ + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py" +] +build-backend = 'mesonpy' + +[project] +name = "fluidfft-fftwmpi" +version = "0.0.1" +description = "Fluidfft plugin for MPI FFTs using fftw_mpi" +authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] +license = {file = "LICENSE"} +classifiers = ["License :: OSI Approved :: MIT License"] +dependencies = ["fluidfft"] +readme = "README.md" + +[project.urls] +Home = "https://foss.heptapod.net/fluiddyn/fluidfft" + +[project.entry-points."fluidfft.plugins"] + +"fft2d.mpi_with_fftwmpi2d" = "fluidfft_fftwmpi.fft2d.mpi_with_fftwmpi2d" +"fft3d.mpi_with_fftwmpi3d" = "fluidfft_fftwmpi.fft3d.mpi_with_fftwmpi3d" diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/__init__.py b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/__init__.py b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.cpp b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/fft2dmpi_with_fftwmpi2d.cpp similarity index 100% rename from plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.cpp rename to plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/fft2dmpi_with_fftwmpi2d.cpp diff --git a/plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.h b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/fft2dmpi_with_fftwmpi2d.h similarity index 100% rename from plugins/fluidfft-fftwmpi/fft2dmpi_with_fftwmpi2d.h rename to plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/fft2dmpi_with_fftwmpi2d.h diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/meson.build b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/meson.build new file mode 100644 index 0000000..1b67648 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft2d/meson.build @@ -0,0 +1,35 @@ + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_fftwmpi/fft2d', +) + +pyx = custom_target( + 'mpi_with_fftwmpi2d.pyx', + output: 'mpi_with_fftwmpi2d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DMPIWithFFTWMPI2D'], +) + +pxd = custom_target( + 'fft2dmpi_with_fftwmpi2d.pxd', + output: 'fft2dmpi_with_fftwmpi2d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT2DMPIWithFFTWMPI2D'], +) + +py.extension_module( + 'mpi_with_fftwmpi2d', + pyx, + pxd, + 'fft2dmpi_with_fftwmpi2d.cpp', + 'fft2dmpi_with_fftwmpi2d.h', + include_path_fluidfft_builder / 'base_fft.cpp', + include_path_fluidfft_builder / 'base_fft2d.cpp', + include_path_fluidfft_builder / 'base_fftmpi.cpp', + include_path_fluidfft_builder / 'base_fft2dmpi.cpp', + dependencies: dependencies, + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_fftwmpi/fft2d', + link_args: link_args, +) diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/__init__.py b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.cpp b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/fft3dmpi_with_fftwmpi3d.cpp similarity index 100% rename from plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.cpp rename to plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/fft3dmpi_with_fftwmpi3d.cpp diff --git a/plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.h b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/fft3dmpi_with_fftwmpi3d.h similarity index 100% rename from plugins/fluidfft-fftwmpi/fft3dmpi_with_fftwmpi3d.h rename to plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/fft3dmpi_with_fftwmpi3d.h diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/meson.build b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/meson.build new file mode 100644 index 0000000..81da595 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/fft3d/meson.build @@ -0,0 +1,35 @@ + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_fftwmpi/fft3d', +) + +pyx = custom_target( + 'mpi_with_fftwmpi3d.pyx', + output: 'mpi_with_fftwmpi3d.pyx', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DMPIWithFFTWMPI3D'], +) + +pxd = custom_target( + 'fft3dmpi_with_fftwmpi3d.pxd', + output: 'fft3dmpi_with_fftwmpi3d.pxd', + command: ['fluidfft-builder-make-file', '@OUTPUT@', 'FFT3DMPIWithFFTWMPI3D'], +) + +py.extension_module( + 'mpi_with_fftwmpi3d', + pyx, + pxd, + 'fft3dmpi_with_fftwmpi3d.cpp', + 'fft3dmpi_with_fftwmpi3d.h', + include_path_fluidfft_builder / 'base_fft.cpp', + include_path_fluidfft_builder / 'base_fft3d.cpp', + include_path_fluidfft_builder / 'base_fftmpi.cpp', + include_path_fluidfft_builder / 'base_fft3dmpi.cpp', + dependencies: dependencies, + override_options : ['cython_language=cpp'], + include_directories: include_path_fluidfft_builder, + install: true, + subdir: 'fluidfft_fftwmpi/fft3d', + link_args: link_args, +) diff --git a/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/meson.build new file mode 100644 index 0000000..da82d84 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/src/fluidfft_fftwmpi/meson.build @@ -0,0 +1,8 @@ + +py.install_sources( + '__init__.py', + subdir: 'fluidfft_fftwmpi' +) + +subdir('fft2d') +subdir('fft3d') diff --git a/plugins/fluidfft-fftwmpi/tests/test_2d.py b/plugins/fluidfft-fftwmpi/tests/test_2d.py new file mode 100644 index 0000000..9372958 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/tests/test_2d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft2d.testing import complete_test_class_2d + + +class Tests(TestCase): + pass + + +complete_test_class_2d("fft2d.mpi_with_fftwmpi2d", Tests) diff --git a/plugins/fluidfft-fftwmpi/tests/test_3d.py b/plugins/fluidfft-fftwmpi/tests/test_3d.py new file mode 100644 index 0000000..0aa3d22 --- /dev/null +++ b/plugins/fluidfft-fftwmpi/tests/test_3d.py @@ -0,0 +1,10 @@ +from unittest import TestCase + +from fluidfft.fft3d.testing import complete_test_class_3d + + +class Tests(TestCase): + pass + + +complete_test_class_3d("fft3d.mpi_with_fftwmpi3d", Tests) diff --git a/pyproject.toml b/pyproject.toml index cbc199f..806dd01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,10 +55,6 @@ fluidfft-bench-analysis = "fluidfft.bench_analysis:run" "fft3d.with_pyfftw" = "fluidfft.fft3d.with_pyfftw" "fft2d.with_dask" = "fluidfft.fft2d.with_dask" -# should be in fluidfft-fftwmpi -# "fft2d.mpi_with_fftwmpi2d" = "fluidfft.fft2d.mpi_with_fftwmpi2d" -# "fft3d.mpi_with_fftwmpi3d" = "fluidfft.fft3d.mpi_with_fftwmpi3d" - # should be in fluidfft-p3dfft # "fft3d.mpi_with_p3dfft" = "fluidfft.fft3d.mpi_with_p3dfft" From 178286b9453c3860ecda12f85397796883d92053 Mon Sep 17 00:00:00 2001 From: paugier Date: Sat, 3 Feb 2024 00:10:05 +0100 Subject: [PATCH 26/36] Clean + Pixi --- .github/environment-windows.yml | 12 --- .github/fluidfft-site-mpi.cfg | 11 --- .github/fluidfft-site-seq.cfg | 5 -- .github/workflows/ci-macos.yml | 33 -------- .../workflows/{ci-windows.yml => ci-pixi.yml} | 22 ++--- .hgignore | 1 + Makefile | 3 + pixi.lock | 82 ++++--------------- pixi.toml | 14 +++- .../fluidfft_builder/templates/template2d.pyx | 2 +- tests/test_2d.py | 20 ----- tests/test_3d.py | 27 +----- tests/test_plugins.py | 53 ++++++++---- 13 files changed, 83 insertions(+), 202 deletions(-) delete mode 100644 .github/environment-windows.yml delete mode 100644 .github/fluidfft-site-mpi.cfg delete mode 100644 .github/fluidfft-site-seq.cfg delete mode 100644 .github/workflows/ci-macos.yml rename .github/workflows/{ci-windows.yml => ci-pixi.yml} (50%) diff --git a/.github/environment-windows.yml b/.github/environment-windows.yml deleted file mode 100644 index c3e3e69..0000000 --- a/.github/environment-windows.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: - test -dependencies: - - cxx-compiler - - transonic - - pythran - - cython - - fftw - - pyfftw - - fluiddyn - - pandas - - pytest diff --git a/.github/fluidfft-site-mpi.cfg b/.github/fluidfft-site-mpi.cfg deleted file mode 100644 index c6c8cc4..0000000 --- a/.github/fluidfft-site-mpi.cfg +++ /dev/null @@ -1,11 +0,0 @@ -[fftw3] -use = True -dir = -include_dir = -library_dir = - -[fftw3_mpi] -use = True -dir = -include_dir = -library_dir = diff --git a/.github/fluidfft-site-seq.cfg b/.github/fluidfft-site-seq.cfg deleted file mode 100644 index 34fafe6..0000000 --- a/.github/fluidfft-site-seq.cfg +++ /dev/null @@ -1,5 +0,0 @@ -[fftw3] -use = True -dir = -include_dir = -library_dir = diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml deleted file mode 100644 index c59b388..0000000 --- a/.github/workflows/ci-macos.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: CI-macos - -on: - - push - - pull_request - -jobs: - tests: - runs-on: macos-latest - defaults: - run: - shell: bash -l {0} - strategy: - matrix: - python-version: [3.9, "3.11"] - steps: - - uses: actions/checkout@v3 - - uses: seanmiddleditch/gha-setup-ninja@master - - uses: conda-incubator/setup-miniconda@v2 - with: - environment-file: .github/environment-windows.yml - miniforge-variant: Mambaforge - miniforge-version: latest - activate-environment: test - use-mamba: true - - name: Install - run: | - pip install meson-python - pip install -e . -v --no-build-isolation --no-deps - pip install plugins/fluidfft-pyfftw - - name: Tests - run: | - pytest -v tests plugins/fluidfft-pyfftw diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-pixi.yml similarity index 50% rename from .github/workflows/ci-windows.yml rename to .github/workflows/ci-pixi.yml index 4ed5f15..ac7cf87 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-pixi.yml @@ -1,4 +1,4 @@ -name: CI-windows +name: CI Pixi on: - push @@ -6,18 +6,15 @@ on: jobs: tests: - runs-on: windows-2022 + runs-on: ${{ matrix.os }}-latest + strategy: + fail-fast: false + matrix: + os: ["windows-2022", "macos-latest"] + python-version: ["3.9", "3.10", "3.11"] defaults: run: shell: bash -l {0} - env: - FLUIDFFT_TRANSONIC_BACKEND: "python" - FLUIDDYN_NO_XSIMD: true - FLUIDFFT_NO_CARCH: true - strategy: - matrix: - python-version: [3.8, 3.9, "3.10"] - steps: - uses: actions/checkout@v3 - uses: prefix-dev/setup-pixi@v0.4.1 @@ -27,4 +24,7 @@ jobs: - name: Tests run: | pixi run install-editable - pixi run pytest -v tests plugins/fluidfft-pyfftw + pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps + - name: Tests + run: | + pixi run pytest -v tests plugins/fluidfft-fftw diff --git a/.hgignore b/.hgignore index 2d361ee..42c8c45 100644 --- a/.hgignore +++ b/.hgignore @@ -52,6 +52,7 @@ site.cfg .tox .nox .venv +.pixi .cache .mypy_cache **/__pythran__/* diff --git a/Makefile b/Makefile index 028ef4c..64a96ef 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,9 @@ develop: sync develop_mpi_with_fftw: pdm run pip install -e plugins/fluidfft-mpi_with_fftw --no-build-isolation -v +develop_fftwmpi: + pdm run pip install -e plugins/fluidfft-fftwmpi --no-build-isolation -v + sync: pdm sync --clean --no-self pdm run pip install -e plugins/fluidfft-builder diff --git a/pixi.lock b/pixi.lock index cd891bd..19b8463 100644 --- a/pixi.lock +++ b/pixi.lock @@ -160,50 +160,6 @@ package: timestamp: 1698341257884 purls: - pkg:pypi/asttokens -- platform: linux-64 - name: astunparse - version: 1.6.3 - category: main - manager: conda - dependencies: - - python >=3.6 - - six >=1.6.1,<2.0 - url: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - hash: - md5: 000b6f68a0bfaba800ced7500c11780f - sha256: e5173d1ed038038e24c0623f0219dc587ee8663cf7efa737e7075128edbc6c60 - build: pyhd8ed1ab_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: BSD-3-Clause AND PSF-2.0 - noarch: python - size: 15539 - timestamp: 1610696401707 - purls: - - pkg:pypi/astunparse -- platform: win-64 - name: astunparse - version: 1.6.3 - category: main - manager: conda - dependencies: - - python >=3.6 - - six >=1.6.1,<2.0 - url: https://conda.anaconda.org/conda-forge/noarch/astunparse-1.6.3-pyhd8ed1ab_0.tar.bz2 - hash: - md5: 000b6f68a0bfaba800ced7500c11780f - sha256: e5173d1ed038038e24c0623f0219dc587ee8663cf7efa737e7075128edbc6c60 - build: pyhd8ed1ab_0 - arch: x86_64 - subdir: win-64 - build_number: 0 - license: BSD-3-Clause AND PSF-2.0 - noarch: python - size: 15539 - timestamp: 1610696401707 - purls: - - pkg:pypi/astunparse - platform: linux-64 name: attr version: 2.5.1 @@ -9424,20 +9380,19 @@ package: - pkg:pypi/traitlets - platform: linux-64 name: transonic - version: 0.5.3 + version: 0.6.0 category: main manager: conda dependencies: - - astunparse - autopep8 - - beniget - - gast + - beniget ~=0.4.0 + - gast ~=0.5.0 - numpy - - python >=3.7 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.5.3-pyhd8ed1ab_0.conda + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.0-pyhd8ed1ab_0.conda hash: - md5: 433a1ca37756713ae8b4e5bd6d718509 - sha256: 20cf1e4a71778097e908dffe100b985b27c96c855a4b5f6ddcb8c49bc62df92e + md5: bc9b5b295915adaf91b2c33579c4f7b8 + sha256: 396ea3d91fa729e6b4719c6cd66ea6146a4aa4de523c966a9e5340cbeb28f7ac build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -9445,24 +9400,23 @@ package: license: BSD-3-Clause license_family: OTHER noarch: python - size: 62217 - timestamp: 1692621180347 + size: 60442 + timestamp: 1705484377579 - platform: win-64 name: transonic - version: 0.5.3 + version: 0.6.0 category: main manager: conda dependencies: - - astunparse - autopep8 - - beniget - - gast + - beniget ~=0.4.0 + - gast ~=0.5.0 - numpy - - python >=3.7 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.5.3-pyhd8ed1ab_0.conda + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.0-pyhd8ed1ab_0.conda hash: - md5: 433a1ca37756713ae8b4e5bd6d718509 - sha256: 20cf1e4a71778097e908dffe100b985b27c96c855a4b5f6ddcb8c49bc62df92e + md5: bc9b5b295915adaf91b2c33579c4f7b8 + sha256: 396ea3d91fa729e6b4719c6cd66ea6146a4aa4de523c966a9e5340cbeb28f7ac build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -9470,8 +9424,8 @@ package: license: BSD-3-Clause license_family: OTHER noarch: python - size: 62217 - timestamp: 1692621180347 + size: 60442 + timestamp: 1705484377579 - platform: linux-64 name: typing_extensions version: 4.9.0 diff --git a/pixi.toml b/pixi.toml index b20283a..9a9840c 100644 --- a/pixi.toml +++ b/pixi.toml @@ -12,13 +12,18 @@ platforms = ["linux-64", "win-64"] [tasks] # use as `pixi run install-editable` # install-dependencies = "pixi install && pip install -e ./lib && pip install ../transonic" -install-dependencies = "pixi install && pip install -e ./lib && pip install 'transonic>=0.6.0'" +install-dependencies = "pixi install && pip install -e plugins/fluidfft-builder" install-editable = {cmd = "pip install -e . -v --no-build-isolation --no-deps", depends_on = ["install-dependencies"]} +install-fftw = "pip install -e plugins/fluidfft-fftw --no-build-isolation -v" +install-fftwmpi = ''' +pip install -e plugins/fluidfft-fftw --no-build-isolation -v && +pip install -e plugins/fluidfft-fftwmpi --no-build-isolation -v +''' [dependencies] python = ">=3.9,<3.11" numpy = ">=1.26.3" -transonic = ">=0.5.3" +transonic = ">=0.6.0,<0.7" fluiddyn = ">=0.5.2" fluidsim-core = ">=0.7.4" h5netcdf = ">=1.3.0" @@ -35,6 +40,9 @@ pytest-cov = ">=4.1.0" pytest-mock = ">=3.12.0" fluidfft = ">=0.2.9" mpi4py = ">=3.1.5" +ninja = ">=1.11.1,<1.12" +meson = ">=1.3.1,<1.4" +meson-python = ">=0.15.0,<0.16" [pypi-dependencies] pymech = "*" @@ -44,4 +52,4 @@ importlib-metadata = "*" [build-dependencies] meson-python = ">=0.15.0" pythran = ">=0.15.0" -transonic = ">=0.5.3" +transonic = ">=0.6.0" diff --git a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx index c8d3c98..c91e5e4 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx +++ b/plugins/fluidfft-builder/fluidfft_builder/templates/template2d.pyx @@ -51,7 +51,7 @@ cdef class ${class_name}: # info on MPI self.nb_proc = nb_proc self.rank = rank - if nb_proc > 1: + if nb_proc > 1 and hasattr(self, "comm"): self.comm = comm self._is_mpi_lib = self._shapeX_seq != self._shapeX_loc diff --git a/tests/test_2d.py b/tests/test_2d.py index 8d99a2a..d16596b 100644 --- a/tests/test_2d.py +++ b/tests/test_2d.py @@ -36,17 +36,6 @@ def test_get_classes(): if not classes_seq: raise ImportError("Not sequential 2d classes working!") -if nb_proc > 1: - methods_mpi = ["fftwmpi2d", "fftw1d"] - methods_mpi = ["fft2d.mpi_with_" + method for method in methods_mpi] - classes_mpi = { - method: import_fft_class(method, raise_import_error=False) - for method in methods_mpi - } - classes_mpi = { - method: cls for method, cls in classes_mpi.items() if cls is not None - } - class Tests2D(unittest.TestCase): pass @@ -62,14 +51,5 @@ class Tests2D(unittest.TestCase): complete_test_class_2d(method, Tests2D, cls=cls) -if nb_proc > 1: - if len(classes_mpi) == 0: - raise RuntimeError( - "ImportError for all mpi classes. Nothing is working in mpi!" - ) - - for method, cls in classes_mpi.items(): - complete_test_class_2d(method, Tests2D, cls=cls) - # TODO: understand what was done here before! # complete_test_class_2d("None", Tests2D, cls=False) diff --git a/tests/test_3d.py b/tests/test_3d.py index e2040cc..7bd1c47 100644 --- a/tests/test_3d.py +++ b/tests/test_3d.py @@ -19,7 +19,7 @@ def test_get_classes(): get_classes_mpi() -methods_seq = ["fftw3d", "pyfftw"] +methods_seq = ["pyfftw"] methods_seq = ["fft3d.with_" + method for method in methods_seq] classes_seq = { method: import_fft_class(method, raise_import_error=False) @@ -31,25 +31,12 @@ def test_get_classes(): if not classes_seq: raise ImportError("Not sequential 2d classes working!") -methods_mpi = ["fftw1d", "fftwmpi3d", "p3dfft", "pfft"] -methods_mpi = ["fft3d.mpi_with_" + method for method in methods_mpi] - -nb_proc = mpi.nb_proc -if nb_proc > 1: - classes_mpi = { - method: import_fft_class(method, raise_import_error=False) - for method in methods_mpi - } - classes_mpi = { - method: cls for method, cls in classes_mpi.items() if cls is not None - } - class Tests3D(unittest.TestCase): pass -if nb_proc == 1: +if mpi.nb_proc == 1: if len(classes_seq) == 0: raise RuntimeError( "ImportError for all sequential classes. Nothing is working!" @@ -60,13 +47,3 @@ class Tests3D(unittest.TestCase): # TODO: understand what was done here before! # complete_class("None", None) - - -if nb_proc > 1: - if len(classes_mpi) == 0: - raise RuntimeError( - "ImportError for all mpi classes. Nothing is working in mpi!" - ) - - for method, cls in classes_mpi.items(): - complete_test_class_3d(method, Tests3D, cls=cls) diff --git a/tests/test_plugins.py b/tests/test_plugins.py index eb82e99..bdb4336 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -4,35 +4,54 @@ methodss = { (2, True): set( [ - "fft2d.with_fftw1d", - "fft2d.with_fftw2d", "fft2d.with_pyfftw", "fft2d.with_dask", ] ), - (2, False): set( - [ - "fft2d.mpi_with_fftw1d", - # "fft2d.mpi_with_fftwmpi2d", - ] - ), + (2, False): set(), (3, True): set( [ - "fft3d.with_fftw3d", "fft3d.with_pyfftw", ] ), - (3, False): set( - [ - "fft3d.mpi_with_fftw1d", - # "fft3d.mpi_with_fftwmpi3d", - # "fft3d.mpi_with_p3dfft", - # "fft3d.mpi_with_pfft", - ] - ), + (3, False): set(), } +try: + import fluidfft_fftw +except ImportError: + pass +else: + for method in ("fft2d.with_fftw1d", "fft2d.with_fftw2d"): + methodss[2, True].add(method) + + methodss[3, True].add("fft3d.with_fftw3d") + del fluidfft_fftw + + +try: + import fluidfft_mpi_with_fftw +except ImportError: + pass +else: + methodss[2, False].add("fft2d.mpi_with_fftw1d") + methodss[3, False].add("fft3d.mpi_with_fftw1d") + del fluidfft_mpi_with_fftw + +try: + import fluidfft_fftwmpi +except ImportError: + pass +else: + methodss[2, False].add("fft2d.mpi_with_fftwmpi2d") + methodss[3, False].add("fft3d.mpi_with_fftwmpi3d") + del fluidfft_fftwmpi + +# "fft3d.mpi_with_p3dfft", +# "fft3d.mpi_with_pfft", + + def test_plugins(): plugins = get_plugins() assert plugins From 832ae355d0275130c820a64b3bafa209c284f648 Mon Sep 17 00:00:00 2001 From: paugier Date: Sat, 3 Feb 2024 23:49:25 +0100 Subject: [PATCH 27/36] CI + Transonic 0.6.1 --- .gitlab-ci.yml | 19 +- meson.build | 33 +-- pdm.lock | 192 +++++++++++++----- pixi.lock | 24 +-- pixi.toml | 10 +- .../fluidfft_builder/make_cy_files.py | 2 +- plugins/fluidfft-fftw/meson.build | 6 + plugins/fluidfft-fftw/pyproject.toml | 2 +- .../src/fluidfft_fftw/fft2d/meson.build | 2 +- .../src/fluidfft_fftw/fft3d/meson.build | 2 +- plugins/fluidfft-fftwmpi/meson.build | 14 +- plugins/fluidfft-fftwmpi/pyproject.toml | 2 +- plugins/fluidfft-mpi_with_fftw/meson.build | 6 + plugins/fluidfft-mpi_with_fftw/pyproject.toml | 2 +- .../fluidfft_mpi_with_fftw/fft2d/meson.build | 2 +- .../fluidfft_mpi_with_fftw/fft3d/meson.build | 2 +- src/fluidfft/bench.py | 3 +- 17 files changed, 195 insertions(+), 128 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9317c32..a507a6c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,15 +23,16 @@ workflow: - if: $CI_COMMIT_BRANCH -# pixi-test: -# stage: pixi -# image: $DOCKER_IMAGE_PATH:pixi -# script: -# - pixi info -# # - rm -rf ../transonic -# # - hg clone https://foss.heptapod.net/fluiddyn/transonic ../transonic -# - pixi run install-editable -# - pixi run pytest -v +pixi-test: + stage: pixi + image: $DOCKER_IMAGE_PATH:pixi + script: + - pixi info + - pixi run install-editable + - pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps + - pixi run pip install plugins/fluidfft-mpi_with_fftw -v --no-build-isolation --no-deps + - pixi run pytest -v tests plugins/fluidfft-fftw + - pixi run mpirun -np 2 pytest -v plugins/fluidfft-mpi_with_fftw # Build an image for the other tasks; this should be a scheduled job, as diff --git a/meson.build b/meson.build index 792efae..652efce 100644 --- a/meson.build +++ b/meson.build @@ -34,40 +34,11 @@ endif use_pythran = backend.contains('pythran') if use_pythran - incdir_numpy = run_command( - py, - [ - '-c', - '''import os -import numpy as np -try: - incdir = os.path.relpath(np.get_include()) -except Exception: - incdir = np.get_include() -print(incdir)''' - ], - check: true - ).stdout().strip() - + incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() inc_np = include_directories(incdir_numpy) np_dep = declare_dependency(include_directories: inc_np) - incdir_pythran = run_command( - py, - [ - '-c', - '''import os -import pythran; -incdir = os.path.dirname(pythran.__file__) -try: - incdir = os.path.relpath(incdir) -except Exception: - pass -print(incdir)''' - ], - check: true - ).stdout().strip() - + incdir_pythran = run_command('transonic-get-include', 'pythran', check: true).stdout().strip() pythran = find_program('pythran', native: true) cpp_args_pythran = [ diff --git a/pdm.lock b/pdm.lock index 29775a9..dccc91e 100644 --- a/pdm.lock +++ b/pdm.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "build", "dev", "doc", "lint", "mpi", "pyfftw", "test"] +groups = ["default", "build", "dask", "dev", "doc", "lint", "mpi", "pyfftw", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:6e47c3a04d50646bfc9128a989548b800190b9178ced765024f2e5a0878d8ca4" +content_hash = "sha256:6a061f9f4ec1babd4a79558e7328bc622610dd996a37f27754876441f84f9e20" [[package]] name = "alabaster" @@ -408,7 +408,7 @@ name = "click" version = "8.1.7" requires_python = ">=3.7" summary = "Composable command line interface toolkit" -groups = ["doc", "lint"] +groups = ["dask", "doc", "lint"] dependencies = [ "colorama; platform_system == \"Windows\"", ] @@ -417,12 +417,23 @@ files = [ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] +[[package]] +name = "cloudpickle" +version = "3.0.0" +requires_python = ">=3.8" +summary = "Pickler class to extend the standard pickle.Pickler functionality" +groups = ["dask"] +files = [ + {file = "cloudpickle-3.0.0-py3-none-any.whl", hash = "sha256:246ee7d0c295602a036e86369c77fecda4ab17b506496730f2f576d9016fd9c7"}, + {file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"}, +] + [[package]] name = "colorama" version = "0.4.6" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" summary = "Cross-platform colored terminal text." -groups = ["build", "dev", "doc", "lint", "test"] +groups = ["build", "dask", "dev", "doc", "lint", "test"] marker = "sys_platform == \"win32\" or os_name == \"nt\" or platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, @@ -660,6 +671,27 @@ files = [ {file = "Cython-3.0.8.tar.gz", hash = "sha256:8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6"}, ] +[[package]] +name = "dask" +version = "2024.1.1" +requires_python = ">=3.9" +summary = "Parallel PyData with Task Scheduling" +groups = ["dask"] +dependencies = [ + "click>=8.1", + "cloudpickle>=1.5.0", + "fsspec>=2021.09.0", + "importlib-metadata>=4.13.0", + "packaging>=20.0", + "partd>=1.2.0", + "pyyaml>=5.3.1", + "toolz>=0.10.0", +] +files = [ + {file = "dask-2024.1.1-py3-none-any.whl", hash = "sha256:860ce2797905095beff0187c214840b80c77d752dcb9098a8283e3655a762bf5"}, + {file = "dask-2024.1.1.tar.gz", hash = "sha256:d0dc92e81ce68594a0a0ce23ba33f4d648f2c2f4217ab9b79068b7ecfb0416c7"}, +] + [[package]] name = "debugpy" version = "1.8.0" @@ -845,6 +877,17 @@ files = [ {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, ] +[[package]] +name = "fsspec" +version = "2023.12.2" +requires_python = ">=3.8" +summary = "File-system specification" +groups = ["dask"] +files = [ + {file = "fsspec-2023.12.2-py3-none-any.whl", hash = "sha256:d800d87f72189a745fa3d6b033b9dc4a34ad069f60ca60b943a63599f5501960"}, + {file = "fsspec-2023.12.2.tar.gz", hash = "sha256:8548d39e8810b59c38014934f6b31e57f40c1b20f911f4cc2b85389c7e9bf0cb"}, +] + [[package]] name = "gast" version = "0.5.4" @@ -978,7 +1021,7 @@ name = "importlib-metadata" version = "7.0.1" requires_python = ">=3.8" summary = "Read metadata from Python packages" -groups = ["default", "doc"] +groups = ["dask", "default", "doc"] dependencies = [ "zipp>=0.5", ] @@ -1541,6 +1584,17 @@ files = [ {file = "kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec"}, ] +[[package]] +name = "locket" +version = "1.0.0" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +summary = "File-based locks for Python on Linux and Windows" +groups = ["dask"] +files = [ + {file = "locket-1.0.0-py2.py3-none-any.whl", hash = "sha256:b6c819a722f7b6bd955b80781788e4a66a55628b858d347536b7e81325a3a5e3"}, + {file = "locket-1.0.0.tar.gz", hash = "sha256:5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632"}, +] + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -1557,52 +1611,52 @@ files = [ [[package]] name = "markupsafe" -version = "2.1.4" +version = "2.1.5" requires_python = ">=3.7" summary = "Safely add untrusted strings to HTML/XML markup." groups = ["doc"] files = [ - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win32.whl", hash = "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win32.whl", hash = "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959"}, - {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -2022,7 +2076,7 @@ name = "packaging" version = "23.2" requires_python = ">=3.7" summary = "Core utilities for Python packages" -groups = ["build", "default", "doc", "lint", "test"] +groups = ["build", "dask", "default", "doc", "lint", "test"] files = [ {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, @@ -2096,6 +2150,21 @@ files = [ {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, ] +[[package]] +name = "partd" +version = "1.4.1" +requires_python = ">=3.7" +summary = "Appendable key-value storage" +groups = ["dask"] +dependencies = [ + "locket", + "toolz", +] +files = [ + {file = "partd-1.4.1-py3-none-any.whl", hash = "sha256:27e766663d36c161e2827aa3e28541c992f0b9527d3cca047e13fb3acdb989e6"}, + {file = "partd-1.4.1.tar.gz", hash = "sha256:56c25dd49e6fea5727e731203c466c6e092f308d8f0024e199d02f6aa2167f67"}, +] + [[package]] name = "pathspec" version = "0.12.1" @@ -2190,13 +2259,13 @@ files = [ [[package]] name = "pip" -version = "23.3.2" +version = "24.0" requires_python = ">=3.7" summary = "The PyPA recommended tool for installing Python packages." groups = ["dev"] files = [ - {file = "pip-23.3.2-py3-none-any.whl", hash = "sha256:5052d7889c1f9d05224cd41741acb7c5d6fa735ab34e339624a614eaaa7e7d76"}, - {file = "pip-23.3.2.tar.gz", hash = "sha256:7fd9972f96db22c8077a1ee2691b172c8089b17a5652a44494a9ecb0d78f9149"}, + {file = "pip-24.0-py3-none-any.whl", hash = "sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc"}, + {file = "pip-24.0.tar.gz", hash = "sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2"}, ] [[package]] @@ -2533,7 +2602,7 @@ name = "pyyaml" version = "6.0.1" requires_python = ">=3.6" summary = "YAML parser and emitter for Python" -groups = ["doc"] +groups = ["dask", "doc"] files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, @@ -3164,6 +3233,17 @@ files = [ {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, ] +[[package]] +name = "toolz" +version = "0.12.1" +requires_python = ">=3.7" +summary = "List processing tools and functional utilities" +groups = ["dask"] +files = [ + {file = "toolz-0.12.1-py3-none-any.whl", hash = "sha256:d22731364c07d72eea0a0ad45bafb2c2937ab6fd38a3507bf55eae8744aa7d85"}, + {file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"}, +] + [[package]] name = "tornado" version = "6.4" @@ -3197,7 +3277,7 @@ files = [ [[package]] name = "transonic" -version = "0.6.0" +version = "0.6.1" requires_python = ">=3.9" summary = "Make your Python code fly at transonic speeds!" groups = ["build", "default"] @@ -3208,8 +3288,8 @@ dependencies = [ "numpy", ] files = [ - {file = "transonic-0.6.0-py3-none-any.whl", hash = "sha256:539a0db25b4bb1ebf115a0a44b4bbab1d2d83ecc842682c5f846c9886b442fba"}, - {file = "transonic-0.6.0.tar.gz", hash = "sha256:11847dd533ee18de46abfa6767f3dd762e47e5075a19d243bdd86c9bee3312a6"}, + {file = "transonic-0.6.1-py3-none-any.whl", hash = "sha256:e7953be7fbb1b13a9d841c3a87731188584a0c9c7e2738bb8aa617c7710f13fd"}, + {file = "transonic-0.6.1.tar.gz", hash = "sha256:d403bc337cbd1d832eba64b186118b34c0b39f231507f08b544a447f4cfcf833"}, ] [[package]] @@ -3325,7 +3405,7 @@ name = "zipp" version = "3.17.0" requires_python = ">=3.8" summary = "Backport of pathlib-compatible object wrapper for zip files" -groups = ["default", "doc"] +groups = ["dask", "default", "doc"] files = [ {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, diff --git a/pixi.lock b/pixi.lock index 19b8463..9cd66d0 100644 --- a/pixi.lock +++ b/pixi.lock @@ -9380,7 +9380,7 @@ package: - pkg:pypi/traitlets - platform: linux-64 name: transonic - version: 0.6.0 + version: 0.6.1 category: main manager: conda dependencies: @@ -9389,10 +9389,10 @@ package: - gast ~=0.5.0 - numpy - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda hash: - md5: bc9b5b295915adaf91b2c33579c4f7b8 - sha256: 396ea3d91fa729e6b4719c6cd66ea6146a4aa4de523c966a9e5340cbeb28f7ac + md5: 54e7b895193629634511d078e7ad7783 + sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -9400,11 +9400,11 @@ package: license: BSD-3-Clause license_family: OTHER noarch: python - size: 60442 - timestamp: 1705484377579 + size: 61018 + timestamp: 1706981358526 - platform: win-64 name: transonic - version: 0.6.0 + version: 0.6.1 category: main manager: conda dependencies: @@ -9413,10 +9413,10 @@ package: - gast ~=0.5.0 - numpy - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda hash: - md5: bc9b5b295915adaf91b2c33579c4f7b8 - sha256: 396ea3d91fa729e6b4719c6cd66ea6146a4aa4de523c966a9e5340cbeb28f7ac + md5: 54e7b895193629634511d078e7ad7783 + sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -9424,8 +9424,8 @@ package: license: BSD-3-Clause license_family: OTHER noarch: python - size: 60442 - timestamp: 1705484377579 + size: 61018 + timestamp: 1706981358526 - platform: linux-64 name: typing_extensions version: 4.9.0 diff --git a/pixi.toml b/pixi.toml index 9a9840c..bcf3411 100644 --- a/pixi.toml +++ b/pixi.toml @@ -15,15 +15,13 @@ platforms = ["linux-64", "win-64"] install-dependencies = "pixi install && pip install -e plugins/fluidfft-builder" install-editable = {cmd = "pip install -e . -v --no-build-isolation --no-deps", depends_on = ["install-dependencies"]} install-fftw = "pip install -e plugins/fluidfft-fftw --no-build-isolation -v" -install-fftwmpi = ''' -pip install -e plugins/fluidfft-fftw --no-build-isolation -v && -pip install -e plugins/fluidfft-fftwmpi --no-build-isolation -v -''' +install-mpi_with_fftw = "pip install -e plugins/fluidfft-mpi_with_fftw --no-build-isolation -v" +install-fftwmpi = "pip install -e plugins/fluidfft-fftwmpi --no-build-isolation -v" [dependencies] python = ">=3.9,<3.11" numpy = ">=1.26.3" -transonic = ">=0.6.0,<0.7" +transonic = ">=0.6.1,<0.7" fluiddyn = ">=0.5.2" fluidsim-core = ">=0.7.4" h5netcdf = ">=1.3.0" @@ -52,4 +50,4 @@ importlib-metadata = "*" [build-dependencies] meson-python = ">=0.15.0" pythran = ">=0.15.0" -transonic = ">=0.6.0" +transonic = ">=0.6.1" diff --git a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py index e2e744a..5270c7f 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py +++ b/plugins/fluidfft-builder/fluidfft_builder/make_cy_files.py @@ -1,3 +1,4 @@ +import argparse import os from datetime import datetime from importlib import resources @@ -88,7 +89,6 @@ def make_file(path_output, class_name, numpy_api="numpy"): def main(): - import argparse parser = argparse.ArgumentParser( prog="fluidfft-builder-make-file", diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index a9519bf..0d52e8f 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -15,8 +15,14 @@ py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() +incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +inc_np = include_directories(incdir_numpy) +np_dep = declare_dependency(include_directories: inc_np) + fftw_dep = dependency('fftw3', static: false) +dependencies = [fftw_dep, np_dep] + include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index 0c586cb..4f0317b 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython" + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index 04a41db..a300381 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -26,7 +26,7 @@ foreach dim : ['1', '2'] f'fft2d_with_fftw@dim@d.h', include_path_fluidfft_builder / 'base_fft2d.cpp', include_path_fluidfft_builder / 'base_fft.cpp', - dependencies: fftw_dep, + dependencies: dependencies, override_options : ['cython_language=cpp'], include_directories: include_path_fluidfft_builder, install: true, diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build index f7c7c7e..bee82a2 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft3d/meson.build @@ -24,7 +24,7 @@ py.extension_module( 'fft3d_with_fftw3d.h', include_path_fluidfft_builder / 'base_fft3d.cpp', include_path_fluidfft_builder / 'base_fft.cpp', - dependencies: fftw_dep, + dependencies: dependencies, override_options : ['cython_language=cpp'], include_directories: include_path_fluidfft_builder, install: true, diff --git a/plugins/fluidfft-fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/meson.build index df84dde..9e8f180 100644 --- a/plugins/fluidfft-fftwmpi/meson.build +++ b/plugins/fluidfft-fftwmpi/meson.build @@ -11,10 +11,6 @@ project( ], ) -py_mod = import('python') -py = py_mod.find_installation('python3', pure: false) -py_dep = py.dependency() - fftw_dep = dependency('fftw3', static: false) mpi_dep = dependency('mpi', language: 'cpp') # no fftw3-mpi.pc file, see https://github.com/FFTW/fftw3/issues/57 @@ -23,7 +19,15 @@ mpi_dep = dependency('mpi', language: 'cpp') compiler = meson.get_compiler('cpp') fftwmpi_dep = compiler.find_library('libfftw_mpi', required: true) -dependencies = [fftw_dep, mpi_dep, fftwmpi_dep] +py_mod = import('python') +py = py_mod.find_installation('python3', pure: false) +py_dep = py.dependency() + +incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +inc_np = include_directories(incdir_numpy) +np_dep = declare_dependency(include_directories: inc_np) + +dependencies = [fftw_dep, mpi_dep, fftwmpi_dep, np_dep] link_args = ['-lfftw3_mpi'] include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() diff --git a/plugins/fluidfft-fftwmpi/pyproject.toml b/plugins/fluidfft-fftwmpi/pyproject.toml index 78792bc..5bddf50 100644 --- a/plugins/fluidfft-fftwmpi/pyproject.toml +++ b/plugins/fluidfft-fftwmpi/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py" + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-mpi_with_fftw/meson.build b/plugins/fluidfft-mpi_with_fftw/meson.build index 44e0159..1fabb10 100644 --- a/plugins/fluidfft-mpi_with_fftw/meson.build +++ b/plugins/fluidfft-mpi_with_fftw/meson.build @@ -18,6 +18,12 @@ py_dep = py.dependency() fftw_dep = dependency('fftw3', static: false) mpi_dep = dependency('mpi', language: 'cpp') +incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +inc_np = include_directories(incdir_numpy) +np_dep = declare_dependency(include_directories: inc_np) + +dependencies = [fftw_dep, mpi_dep, np_dep] + include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() diff --git a/plugins/fluidfft-mpi_with_fftw/pyproject.toml b/plugins/fluidfft-mpi_with_fftw/pyproject.toml index 338e48d..2c9a57f 100644 --- a/plugins/fluidfft-mpi_with_fftw/pyproject.toml +++ b/plugins/fluidfft-mpi_with_fftw/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py" + "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build index dcf5f16..b93ad43 100644 --- a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build +++ b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft2d/meson.build @@ -26,7 +26,7 @@ py.extension_module( include_path_fluidfft_builder / 'base_fft2d.cpp', include_path_fluidfft_builder / 'base_fftmpi.cpp', include_path_fluidfft_builder / 'base_fft2dmpi.cpp', - dependencies: [fftw_dep, mpi_dep], + dependencies: dependencies, override_options : ['cython_language=cpp'], include_directories: include_path_fluidfft_builder, install: true, diff --git a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build index e2b0dc4..88cf01f 100644 --- a/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build +++ b/plugins/fluidfft-mpi_with_fftw/src/fluidfft_mpi_with_fftw/fft3d/meson.build @@ -27,7 +27,7 @@ py.extension_module( include_path_fluidfft_builder / 'base_fft3d.cpp', include_path_fluidfft_builder / 'base_fftmpi.cpp', include_path_fluidfft_builder / 'base_fft3dmpi.cpp', - dependencies: [fftw_dep, mpi_dep], + dependencies: dependencies, override_options : ['cython_language=cpp'], include_directories: include_path_fluidfft_builder, install: true, diff --git a/src/fluidfft/bench.py b/src/fluidfft/bench.py index 1dd80ba..6b56a01 100644 --- a/src/fluidfft/bench.py +++ b/src/fluidfft/bench.py @@ -144,7 +144,8 @@ def bench_all( n1=None, n2=None, path_dir=path_results, - skip_patterns=None, + # tmp: to skip failing test + skip_patterns=("dask",), nb_exec=None, ): if n1 is None: From a97928578013322513249460f890f8c03092fae8 Mon Sep 17 00:00:00 2001 From: paugier Date: Sun, 4 Feb 2024 00:14:30 +0100 Subject: [PATCH 28/36] Fix nox tests --- noxfile.py | 28 +++++++++++++++++++++------- tests/test_bench.py | 4 ---- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/noxfile.py b/noxfile.py index 225735a..f0e3b5c 100644 --- a/noxfile.py +++ b/noxfile.py @@ -44,22 +44,26 @@ def validate_code(session): def tests(session, with_mpi, with_cov): """Execute unit-tests using pytest""" - command = "pdm sync --clean --no-self -G test" + command = "pdm sync --clean --no-self -G test -G build -G pyfftw" if with_mpi: command += " -G mpi" session.run_always(*command.split(), external=True) session.install( - ".", "--no-deps", "-v", - "--config-settings=setup-args=-Dtransonic-backend=python", + ".", + "--no-deps", + "-v", silent=False, ) session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) - session.install("-e", "plugins/fluidfft-builder") - session.install("-e", "plugins/fluidfft-fftw") + session.install("plugins/fluidfft-builder") + session.install("-e", "plugins/fluidfft-fftw", "--no-build-isolation", "-v") if with_mpi: - session.install("-e", "plugins/fluidfft-mpi_with_fftw") + session.install( + "-e", "plugins/fluidfft-mpi_with_fftw", "--no-build-isolation", "-v" + ) + session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) @@ -77,6 +81,8 @@ def run_command(command, **kwargs): run_command(command, *session.posargs) run_command(command, *session.posargs, env={"TRANSONIC_NO_REPLACE": "1"}) + run_command("pytest -v plugins/fluidfft-fftw") + if with_mpi: if with_cov: command = "mpirun -np 2 --oversubscribe coverage run -p -m pytest -v -s --exitfirst tests" @@ -84,9 +90,17 @@ def run_command(command, **kwargs): else: command = "mpirun -np 2 --oversubscribe pytest -v -s tests" - # Using TRANSONIC_NO_REPLACE with mpirun in docker can block the tests run_command(command, external=True) + run_command( + "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-mpi_with_fftw", + external=True, + ) + run_command( + "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", + external=True, + ) + if with_cov: if with_mpi: run_command("coverage combine") diff --git a/tests/test_bench.py b/tests/test_bench.py index 2febbb9..78eb02a 100644 --- a/tests/test_bench.py +++ b/tests/test_bench.py @@ -47,7 +47,3 @@ def test3d(self): path_dir=path_tmp, skip_patterns=["p3dfft"], ) - - -if __name__ == "__main__": - unittest.main() From 4f0339ef507a3215b4d1e5edc197223be4684c4a Mon Sep 17 00:00:00 2001 From: paugier Date: Sun, 4 Feb 2024 21:41:03 +0100 Subject: [PATCH 29/36] Work on fixing CIs --- .github/workflows/ci-linux.yml | 1 + .github/workflows/ci-pixi.yml | 13 +- .gitlab-ci.yml | 10 +- noxfile.py | 10 +- pixi.lock | 5763 ++++++++++++++++++++++---- pixi.toml | 8 +- plugins/fluidfft-fftwmpi/meson.build | 2 +- 7 files changed, 4975 insertions(+), 832 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 06895f1..047be24 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -38,6 +38,7 @@ jobs: - name: Run tests run: | + ls /usr/lib/x86_64-linux-gnu/libfftw3* nox --session "tests(with_cov=True, with_mpi=False)" make cleanall nox --session "tests(with_cov=True, with_mpi=True)" diff --git a/.github/workflows/ci-pixi.yml b/.github/workflows/ci-pixi.yml index ac7cf87..86f1dae 100644 --- a/.github/workflows/ci-pixi.yml +++ b/.github/workflows/ci-pixi.yml @@ -6,12 +6,14 @@ on: jobs: tests: - runs-on: ${{ matrix.os }}-latest + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: ["windows-2022", "macos-latest"] - python-version: ["3.9", "3.10", "3.11"] + # os: ["windows-2022", "macos-latest"] + # python-version: ["3.9", "3.10", "3.11"] + os: ["windows-2022"] + python-version: ["3.10"] defaults: run: shell: bash -l {0} @@ -25,6 +27,11 @@ jobs: run: | pixi run install-editable pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps + - name: Show meson-log.txt + if: always() + run: | + cat build/cp310/meson-logs/meson-log.txt + cat 'D:\a\fluidfft\fluidfft\.pixi\env\Scripts\transonic-get-include' - name: Tests run: | pixi run pytest -v tests plugins/fluidfft-fftw diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a507a6c..83ab3a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,14 +25,15 @@ workflow: pixi-test: stage: pixi - image: $DOCKER_IMAGE_PATH:pixi + image: registry.heptapod.net:443/fluiddyn/fluidsim/ci/default:pixi script: - pixi info - pixi run install-editable - pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps - - pixi run pip install plugins/fluidfft-mpi_with_fftw -v --no-build-isolation --no-deps - - pixi run pytest -v tests plugins/fluidfft-fftw - - pixi run mpirun -np 2 pytest -v plugins/fluidfft-mpi_with_fftw + - pixi run pytest -v tests + - pixi run pytest -v plugins/fluidfft-fftw + # - pixi run pip install plugins/fluidfft-mpi_with_fftw -v --no-build-isolation --no-deps + # - pixi run mpirun -np 2 pytest -v plugins/fluidfft-mpi_with_fftw # Build an image for the other tasks; this should be a scheduled job, as @@ -95,6 +96,7 @@ tests_mpi: - job: "image:build" optional: true script: + - ls /usr/lib/x86_64-linux-gnu/libfftw3* - nox -s "tests(with_cov=True, with_mpi=True)" diff --git a/noxfile.py b/noxfile.py index f0e3b5c..7f2960d 100644 --- a/noxfile.py +++ b/noxfile.py @@ -63,7 +63,7 @@ def tests(session, with_mpi, with_cov): session.install( "-e", "plugins/fluidfft-mpi_with_fftw", "--no-build-isolation", "-v" ) - session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") + # session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) @@ -96,10 +96,10 @@ def run_command(command, **kwargs): "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-mpi_with_fftw", external=True, ) - run_command( - "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", - external=True, - ) + # run_command( + # "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", + # external=True, + # ) if with_cov: if with_mpi: diff --git a/pixi.lock b/pixi.lock index 9cd66d0..2aef49a 100644 --- a/pixi.lock +++ b/pixi.lock @@ -2,12 +2,14 @@ version: 3 metadata: content_hash: linux-64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d + osx-64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d win-64: e90c2ee71ad70fc0a1c8302029533a7d1498f2bffcd0eaa8d2934700e775dc1d channels: - url: https://conda.anaconda.org/conda-forge/ used_env_vars: [] platforms: - linux-64 + - osx-64 - win-64 sources: [] time_metadata: null @@ -75,24 +77,43 @@ package: timestamp: 1693607226431 - platform: linux-64 name: aom - version: 3.7.1 + version: 3.8.1 category: main manager: conda dependencies: - libgcc-ng >=12 - libstdcxx-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/aom-3.7.1-h59595ed_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/aom-3.8.1-h59595ed_0.conda hash: - md5: 504e70332b8322cda93b7bceb5925fca - sha256: 57ad60805ffc7097a690d6d0e07ba432a3dae187158e13001c392177358478f9 + md5: 50871627bc8ba3a46ec5650f4a5b9d43 + sha256: 42fd8fc28735deac6c578c9a07fc4c6b1912ba4300b63631e64fc0a6e0f22370 build: h59595ed_0 arch: x86_64 subdir: linux-64 build_number: 0 license: BSD-2-Clause license_family: BSD - size: 2688122 - timestamp: 1700530526866 + size: 2700689 + timestamp: 1706649284348 +- platform: osx-64 + name: aom + version: 3.8.1 + category: main + manager: conda + dependencies: + - libcxx >=15 + url: https://conda.anaconda.org/conda-forge/osx-64/aom-3.8.1-h73e2aa4_0.conda + hash: + md5: 3194f8209de31e1e09f2ae915c5288d4 + sha256: ee8677cc9bea352c7fe12d5f42f0d277cee1d7e7f5518ae728dc1befc75fe49a + build: h73e2aa4_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 2756364 + timestamp: 1706649344166 - platform: win-64 name: aom version: 3.7.1 @@ -137,6 +158,29 @@ package: timestamp: 1698341257884 purls: - pkg:pypi/asttokens +- platform: osx-64 + name: asttokens + version: 2.4.1 + category: main + manager: conda + dependencies: + - python >=3.5 + - six >=1.12.0 + url: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 5f25798dcefd8252ce5f9dc494d5f571 + sha256: 708168f026df19a0344983754d27d1f7b28bb21afc7b97a82f02c4798a3d2111 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 28922 + timestamp: 1698341257884 + purls: + - pkg:pypi/asttokens - platform: win-64 name: asttokens version: 2.4.1 @@ -201,6 +245,28 @@ package: timestamp: 1704011393776 purls: - pkg:pypi/attrs +- platform: osx-64 + name: attrs + version: 23.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + hash: + md5: 5e4c0743c70186509d1412e03c2d8dfa + sha256: 77c7d03bdb243a048fff398cedc74327b7dc79169ebe3b4c8448b0331ea55fea + build: pyh71513ae_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 54582 + timestamp: 1704011393776 + purls: + - pkg:pypi/attrs - platform: win-64 name: attrs version: 23.2.0 @@ -248,6 +314,31 @@ package: timestamp: 1693061409657 purls: - pkg:pypi/autopep8 +- platform: osx-64 + name: autopep8 + version: 2.0.4 + category: main + manager: conda + dependencies: + - packaging + - pycodestyle >=2.10.0 + - python >=3.6 + - tomli + url: https://conda.anaconda.org/conda-forge/noarch/autopep8-2.0.4-pyhd8ed1ab_0.conda + hash: + md5: 1053857605b5139c8f9818a029a71913 + sha256: 5d9de00093c8757939df773754a76341f908bd7d6aaa65005e8dbae5632bac73 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 45709 + timestamp: 1693061409657 + purls: + - pkg:pypi/autopep8 - platform: win-64 name: autopep8 version: 2.0.4 @@ -296,6 +387,29 @@ package: timestamp: 1627922710217 purls: - pkg:pypi/beniget +- platform: osx-64 + name: beniget + version: 0.4.1 + category: main + manager: conda + dependencies: + - gast >=0.5.0,<0.6.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/beniget-0.4.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 66744e23ceca50ebb022b0a6cba866a8 + sha256: 767cecb8b32d981f5c666eac1cc231d6fbcb29042124efe1b921a9de9201924b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12659 + timestamp: 1627922710217 + purls: + - pkg:pypi/beniget - platform: win-64 name: beniget version: 0.4.1 @@ -383,6 +497,29 @@ package: license_family: BSD size: 48692 timestamp: 1693657088079 +- platform: osx-64 + name: blosc + version: 1.21.5 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - libzlib >=1.2.13,<1.3.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - snappy >=1.1.10,<2.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.5-heccf04b_0.conda + hash: + md5: 3003fa6dd18769db1a616982dcee5b40 + sha256: db629047f1721d5a6e3bd41b07c1a3bacd0dee70f4063b61db2aa46f19a0b8b4 + build: heccf04b_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 49891 + timestamp: 1693657206065 - platform: win-64 name: blosc version: 1.21.5 @@ -430,6 +567,27 @@ package: license_family: MIT size: 19383 timestamp: 1695990069230 +- platform: osx-64 + name: brotli + version: 1.1.0 + category: main + manager: conda + dependencies: + - brotli-bin 1.1.0 h0dc2134_1 + - libbrotlidec 1.1.0 h0dc2134_1 + - libbrotlienc 1.1.0 h0dc2134_1 + url: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.1.0-h0dc2134_1.conda + hash: + md5: 9272dd3b19c4e8212f8542cefd5c3d67 + sha256: 4bf66d450be5d3f9ebe029b50f818d088b1ef9666b1f19e90c85479c77bbdcde + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 19530 + timestamp: 1695990310168 - platform: win-64 name: brotli version: 1.1.0 @@ -475,6 +633,26 @@ package: license_family: MIT size: 18980 timestamp: 1695990054140 +- platform: osx-64 + name: brotli-bin + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlidec 1.1.0 h0dc2134_1 + - libbrotlienc 1.1.0 h0dc2134_1 + url: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.1.0-h0dc2134_1.conda + hash: + md5: ece565c215adcc47fc1db4e651ee094b + sha256: 7ca3cfb4c5df314ed481301335387ab2b2ee651e2c74fbb15bacc795c664a5f1 + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 16660 + timestamp: 1695990286737 - platform: win-64 name: brotli-bin version: 1.1.0 @@ -519,6 +697,26 @@ package: license_family: MIT size: 204879 timestamp: 1607309237341 +- platform: osx-64 + name: brunsli + version: '0.1' + category: main + manager: conda + dependencies: + - brotli >=1.0.9,<2.0a0 + - libcxx >=11.0.0 + url: https://conda.anaconda.org/conda-forge/osx-64/brunsli-0.1-h046ec9c_0.tar.bz2 + hash: + md5: 28d47920c95b85499c9a61994cc49b87 + sha256: e9abc53437889e03013b466521f928903fa27de770d16eb5f4ac6c4266a7b6a4 + build: h046ec9c_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 183140 + timestamp: 1607309287088 - platform: linux-64 name: bzip2 version: 1.0.8 @@ -538,6 +736,24 @@ package: license_family: BSD size: 254228 timestamp: 1699279927352 +- platform: osx-64 + name: bzip2 + version: 1.0.8 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda + hash: + md5: 6097a6ca9ada32699b5fc4312dd6ef18 + sha256: 61fb2b488928a54d9472113e1280b468a309561caa54f33825a3593da390b242 + build: h10d778d_5 + arch: x86_64 + subdir: osx-64 + build_number: 5 + license: bzip2-1.0.6 + license_family: BSD + size: 127885 + timestamp: 1699280178474 - platform: win-64 name: bzip2 version: 1.0.8 @@ -561,26 +777,44 @@ package: timestamp: 1699280668742 - platform: linux-64 name: c-ares - version: 1.25.0 + version: 1.26.0 category: main manager: conda dependencies: - libgcc-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.25.0-hd590300_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.26.0-hd590300_0.conda hash: - md5: 89e40af02dd3a0846c0c1131c5126706 - sha256: c4bbdafd6791583e3c77e8ed0e1df9e0021d542249c3543de3d72788f5c8a0c4 + md5: a86d90025198fd411845fc245ebc06c8 + sha256: 3771589a91303710a59d1d40bbcdca43743969fe993ea576538ba375ac8ab0fa build: hd590300_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 156989 - timestamp: 1704784109506 + size: 162725 + timestamp: 1706299899438 +- platform: osx-64 + name: c-ares + version: 1.26.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.26.0-h10d778d_0.conda + hash: + md5: 04a8ab3d4f9a9446b286c4a90f665148 + sha256: 4b01708ed02f3e2cf9e8919a6fc1d3116cdf84c1a771294031e880f54235f47c + build: h10d778d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 147816 + timestamp: 1706300301840 - platform: linux-64 name: c-blosc2 - version: 2.12.0 + version: 2.13.1 category: main manager: conda dependencies: @@ -589,21 +823,43 @@ package: - lz4-c >=1.9.3,<1.10.0a0 - zlib-ng >=2.0.7,<2.1.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.12.0-hb4ffafa_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.13.1-hb4ffafa_0.conda hash: - md5: 1a9b16afb84d734a1bb2d196c308d477 - sha256: 68ae377f7baeb616e5a24facadebd8bf7a9cd48a297124be9d814ba92ff5e40f + md5: 44c240217db28e1b3e1428625b4b4bbd + sha256: dc8c38c1213557d6a5242a2e4ed4cc7dec5be0cf0f7a32f0414806558c6ca6d4 build: hb4ffafa_0 arch: x86_64 subdir: linux-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 333736 - timestamp: 1703769067617 + size: 336648 + timestamp: 1706187117453 +- platform: osx-64 + name: c-blosc2 + version: 2.13.1 + category: main + manager: conda + dependencies: + - libcxx >=15 + - lz4-c >=1.9.3,<1.10.0a0 + - zlib-ng >=2.0.7,<2.1.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/c-blosc2-2.13.1-h0ae8482_0.conda + hash: + md5: 767c82932b8a6b700d39d046ad226928 + sha256: 65a7a064bce120dfc0a6a1432d2b9d1d7b74f98f44d0e0f189e519d62817b26a + build: h0ae8482_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 278098 + timestamp: 1706187380090 - platform: win-64 name: c-blosc2 - version: 2.12.0 + version: 2.13.1 category: main manager: conda dependencies: @@ -613,52 +869,69 @@ package: - vc14_runtime >=14.29.30139 - zlib-ng >=2.0.7,<2.1.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/win-64/c-blosc2-2.12.0-h183a6f4_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/c-blosc2-2.13.1-h183a6f4_0.conda hash: - md5: 8d11feddc57240e433ad7c222fb934f1 - sha256: a45391d61c15b27150d59607079a00b5547edcfdbe1cc2d4c409aa36888ef799 + md5: 3d165f7318c4c377abe2f1e559ea5e49 + sha256: 9b89bc606cacc5730fe6076514bd139fb9a77efb509e54e1b546ee3275f0d5be build: h183a6f4_0 arch: x86_64 subdir: win-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 208802 - timestamp: 1703769684013 + size: 209496 + timestamp: 1706187677719 - platform: linux-64 name: ca-certificates - version: 2023.11.17 + version: 2024.2.2 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2023.11.17-hbcca054_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda hash: - md5: 01ffc8d36f9eba0ce0b3c1955fa780ee - sha256: fb4b9f4b7d885002db0b93e22f44b5b03791ef3d4efdc9d0662185a0faafd6b6 + md5: 2f4327a1cbe7f022401b236e915a5fef + sha256: 91d81bfecdbb142c15066df70cc952590ae8991670198f92c66b62019b251aeb build: hbcca054_0 arch: x86_64 subdir: linux-64 build_number: 0 license: ISC - size: 154117 - timestamp: 1700280881924 + size: 155432 + timestamp: 1706843687645 +- platform: osx-64 + name: ca-certificates + version: 2024.2.2 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda + hash: + md5: f2eacee8c33c43692f1ccfd33d0f50b1 + sha256: 54a794aedbb4796afeabdf54287b06b1d27f7b13b3814520925f4c2c80f58ca9 + build: h8857fd0_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: ISC + size: 155665 + timestamp: 1706843838227 - platform: win-64 name: ca-certificates - version: 2023.11.17 + version: 2024.2.2 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2023.11.17-h56e8100_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda hash: - md5: 1163114b483f26761f993c709e65271f - sha256: c6177e2a4967db7a4e929c6ecd2fafde36e489dbeda23ceda640f4915cb0e877 + md5: 63da060240ab8087b60d1357051ea7d6 + sha256: 4d587088ecccd393fec3420b64f1af4ee1a0e6897a45cfd5ef38055322cea5d0 build: h56e8100_0 arch: x86_64 subdir: win-64 build_number: 0 license: ISC - size: 154700 - timestamp: 1700281021312 + size: 155886 + timestamp: 1706843918052 - platform: linux-64 name: cached-property version: 1.5.2 @@ -679,6 +952,26 @@ package: noarch: python size: 4134 timestamp: 1615209571450 +- platform: osx-64 + name: cached-property + version: 1.5.2 + category: main + manager: conda + dependencies: + - cached_property >=1.5.2,<1.5.3.0a0 + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + hash: + md5: 9b347a7ec10940d3f7941ff6c460b551 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + build: hd8ed1ab_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 4134 + timestamp: 1615209571450 - platform: win-64 name: cached-property version: 1.5.2 @@ -721,6 +1014,28 @@ package: timestamp: 1615209567874 purls: - pkg:pypi/cached-property +- platform: osx-64 + name: cached_property + version: 1.5.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + hash: + md5: 576d629e47797577ab0f1b351297ef4a + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + build: pyha770c72_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 11065 + timestamp: 1615209567874 + purls: + - pkg:pypi/cached-property - platform: win-64 name: cached_property version: 1.5.2 @@ -777,44 +1092,90 @@ package: license: LGPL-2.1-only or MPL-1.1 size: 982351 timestamp: 1697028423052 +- platform: osx-64 + name: cctools_osx-64 + version: 973.0.1 + category: main + manager: conda + dependencies: + - ld64_osx-64 >=609,<610.0a0 + - libcxx + - libllvm17 >=17.0.6,<17.1.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - sigtool + url: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-973.0.1-h031c385_16.conda + hash: + md5: ab815048866f8844132db12a1b5bc18d + sha256: 91c3d1cfe8a485aeb53767d8a7cf685a4d4ffb603741957175271722916d1ba5 + build: h031c385_16 + arch: x86_64 + subdir: osx-64 + build_number: 16 + constrains: + - cctools 973.0.1.* + - clang 17.0.* + - ld64 609.* + license: APSL-2.0 + license_family: Other + size: 1100288 + timestamp: 1706797898287 - platform: linux-64 name: certifi - version: 2023.11.17 + version: 2024.2.2 category: main manager: conda dependencies: - python >=3.7 - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda hash: - md5: 2011bcf45376341dd1d690263fdbc789 - sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + md5: 0876280e409658fc6f9e75d035960333 + sha256: f1faca020f988696e6b6ee47c82524c7806380b37cfdd1def32f92c326caca54 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 build_number: 0 license: ISC noarch: python - size: 158939 - timestamp: 1700303562512 + size: 160559 + timestamp: 1707022289175 +- platform: osx-64 + name: certifi + version: 2024.2.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda + hash: + md5: 0876280e409658fc6f9e75d035960333 + sha256: f1faca020f988696e6b6ee47c82524c7806380b37cfdd1def32f92c326caca54 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: ISC + noarch: python + size: 160559 + timestamp: 1707022289175 - platform: win-64 name: certifi - version: 2023.11.17 + version: 2024.2.2 category: main manager: conda dependencies: - python >=3.7 - url: https://conda.anaconda.org/conda-forge/noarch/certifi-2023.11.17-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.2.2-pyhd8ed1ab_0.conda hash: - md5: 2011bcf45376341dd1d690263fdbc789 - sha256: afa22b77128a812cb57bc707c297d926561bd225a3d9dd74205d87a3b2d14a96 + md5: 0876280e409658fc6f9e75d035960333 + sha256: f1faca020f988696e6b6ee47c82524c7806380b37cfdd1def32f92c326caca54 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 build_number: 0 license: ISC noarch: python - size: 158939 - timestamp: 1700303562512 + size: 160559 + timestamp: 1707022289175 - platform: linux-64 name: charls version: 2.4.2 @@ -835,6 +1196,25 @@ package: license_family: BSD size: 150272 timestamp: 1684262827894 +- platform: osx-64 + name: charls + version: 2.4.2 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + url: https://conda.anaconda.org/conda-forge/osx-64/charls-2.4.2-he965462_0.conda + hash: + md5: c267b3955138953f8ca4cb4d1f4f2d84 + sha256: 5167aafc0bcc3849373dd8afb448cc387078210236e597f2ef8d2b1fe3d0b1a2 + build: he965462_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 138062 + timestamp: 1684263362836 - platform: win-64 name: charls version: 2.4.2 @@ -856,22 +1236,46 @@ package: license_family: BSD size: 95857 timestamp: 1684263404702 -- platform: win-64 +- platform: osx-64 name: clang version: 17.0.6 category: main manager: conda dependencies: - - clang-17 17.0.6 default_hde6756a_2 - - libzlib >=1.2.13,<1.3.0a0 - - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/win-64/clang-17.0.6-ha177bd6_2.conda + - clang-17 17.0.6 default_h6b1ee41_2 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-17.0.6-hac416ee_2.conda hash: - md5: 1327aba7174c4819eecf7cc1ba124e92 - sha256: 5a3c5a0ea2a8686ab0c2a5887c6d401ccdeab2422fcd5f48353a428783a6c7c1 - build: ha177bd6_2 + md5: dc3f1f9873fa7935a95379031a21f7dc + sha256: 69d31c5b49addaeabd33d71f31548a1b502fb5c286a5cdd4bf53f5670c2f9223 + build: hac416ee_2 arch: x86_64 - subdir: win-64 + subdir: osx-64 + build_number: 2 + constrains: + - clang-tools 17.0.6.* + - llvm 17.0.6.* + - llvm-tools 17.0.6.* + - llvmdev 17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21880 + timestamp: 1704279589807 +- platform: win-64 + name: clang + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang-17 17.0.6 default_hde6756a_2 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/win-64/clang-17.0.6-ha177bd6_2.conda + hash: + md5: 1327aba7174c4819eecf7cc1ba124e92 + sha256: 5a3c5a0ea2a8686ab0c2a5887c6d401ccdeab2422fcd5f48353a428783a6c7c1 + build: ha177bd6_2 + arch: x86_64 + subdir: win-64 build_number: 2 constrains: - clang-tools 17.0.6.* @@ -882,6 +1286,32 @@ package: license_family: Apache size: 93457639 timestamp: 1704280018632 +- platform: osx-64 + name: clang-17 + version: 17.0.6 + category: main + manager: conda + dependencies: + - libclang-cpp17 17.0.6 default_h6b1ee41_2 + - libcxx >=16.0.6 + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-17-17.0.6-default_h6b1ee41_2.conda + hash: + md5: c57c301875444e6207cb1a6ebfe1f914 + sha256: 8079cc7cd02cdb343cdfd23f6691cf95f66593ee945907b657e4b241e4151107 + build: default_h6b1ee41_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + constrains: + - clangdev 17.0.6 + - clangxx 17.0.6 + - llvm-tools 17.0.6 + - clang-tools 17.0.6 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 714938 + timestamp: 1704279295294 - platform: win-64 name: clang-17 version: 17.0.6 @@ -910,6 +1340,67 @@ package: license_family: Apache size: 31821282 timestamp: 1704279749334 +- platform: osx-64 + name: clang_impl_osx-64 + version: 17.0.6 + category: main + manager: conda + dependencies: + - cctools_osx-64 + - clang 17.0.6.* + - compiler-rt 17.0.6.* + - ld64_osx-64 + - llvm-tools 17.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-17.0.6-h1af8efd_9.conda + hash: + md5: 1febfb99dab0295c342ac4106a18c9c5 + sha256: c91f197cd0edb6a8425cf645918d73f197c1504ebbed736a9191f7a614873f6a + build: h1af8efd_9 + arch: x86_64 + subdir: osx-64 + build_number: 9 + license: BSD-3-Clause + license_family: BSD + size: 17645 + timestamp: 1706817778710 +- platform: osx-64 + name: clang_osx-64 + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang_impl_osx-64 17.0.6 h1af8efd_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-17.0.6-hb91bd55_9.conda + hash: + md5: 185266aefb664fdb282ca84ed5fa7656 + sha256: 6d3f8b37ce7f548eb1148c8a2ef6cccb5a1931cf0c6a758840fdb90aaab16729 + build: hb91bd55_9 + arch: x86_64 + subdir: osx-64 + build_number: 9 + license: BSD-3-Clause + license_family: BSD + size: 20675 + timestamp: 1706817790659 +- platform: osx-64 + name: clangxx + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang 17.0.6 hac416ee_2 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx-17.0.6-default_h6b1ee41_2.conda + hash: + md5: 2a7363e23422b547ca0daba59753ad37 + sha256: 224f74cb98548615d4ba9642eb5bac0c08b4507fe5368fcf8365ff7946b0eea6 + build: default_h6b1ee41_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21964 + timestamp: 1704279670568 - platform: win-64 name: clangxx version: 17.0.6 @@ -931,6 +1422,48 @@ package: license_family: Apache size: 31170271 timestamp: 1704280338941 +- platform: osx-64 + name: clangxx_impl_osx-64 + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang_osx-64 17.0.6 hb91bd55_9 + - clangxx 17.0.6.* + - libcxx >=16 + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-17.0.6-hc3430b7_9.conda + hash: + md5: acc7c4c22a4819595cba70504b64203a + sha256: c03716b83331a6bfe1e716b27ec05a7616e94ec9c6107bd86b9dff3c952aaab9 + build: hc3430b7_9 + arch: x86_64 + subdir: osx-64 + build_number: 9 + license: BSD-3-Clause + license_family: BSD + size: 17761 + timestamp: 1706817808483 +- platform: osx-64 + name: clangxx_osx-64 + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang_osx-64 17.0.6 hb91bd55_9 + - clangxx_impl_osx-64 17.0.6 hc3430b7_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-17.0.6-hb91bd55_9.conda + hash: + md5: 32001a875e9a541de94c4d621de6d353 + sha256: ab43ff4e69c46b8650940e6d9b6970625b1111fab4d4cbf8e74e7d6bec9972d6 + build: hb91bd55_9 + arch: x86_64 + subdir: osx-64 + build_number: 9 + license: BSD-3-Clause + license_family: BSD + size: 19458 + timestamp: 1706817822690 - platform: linux-64 name: colorama version: 0.4.6 @@ -953,6 +1486,28 @@ package: timestamp: 1666700778190 purls: - pkg:pypi/colorama +- platform: osx-64 + name: colorama + version: 0.4.6 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3faab06a954c2a04039983f2c4a50d99 + sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 25170 + timestamp: 1666700778190 + purls: + - pkg:pypi/colorama - platform: win-64 name: colorama version: 0.4.6 @@ -977,49 +1532,115 @@ package: - pkg:pypi/colorama - platform: linux-64 name: colorlog - version: 6.8.0 + version: 6.8.2 category: main manager: conda dependencies: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/linux-64/colorlog-6.8.0-py310hff52083_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/colorlog-6.8.2-py310hff52083_0.conda hash: - md5: 791a8656895abef9e61bf46f629032f5 - sha256: 0456f982e380d208adfe3f716ef25da4250b00ed2a631a1fb0f63031f78dc8bc + md5: db1be62a6a5d51f5a36fb99b2cc12972 + sha256: 53917daaac7a0cb7a4a35b65777a42e49030584631cccadc766b47c538078c14 build: py310hff52083_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 19507 - timestamp: 1701544400898 + size: 19697 + timestamp: 1706285684677 + purls: + - pkg:pypi/colorlog +- platform: osx-64 + name: colorlog + version: 6.8.2 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/colorlog-6.8.2-py310h2ec42d9_0.conda + hash: + md5: df76ef7f21c6714a63eb286526ba4350 + sha256: 0111e92e9afd62bed44dbb482f26d0719587135945fc0cf6522bb1d438149796 + build: py310h2ec42d9_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 19810 + timestamp: 1706286038997 purls: - pkg:pypi/colorlog - platform: win-64 name: colorlog - version: 6.8.0 + version: 6.8.2 category: main manager: conda dependencies: - colorama - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/win-64/colorlog-6.8.0-py310h5588dad_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/colorlog-6.8.2-py310h5588dad_0.conda hash: - md5: c5b829682d5a25bf7bb50fd0a399b6c0 - sha256: 25a627a634646736c95bfd15047efaeb5be36e07db5128bc34c134f8fdfa763f + md5: 24a96b2318ffd3574b68d7dae0244e83 + sha256: 2dfa5965eefb23a1bb1bd0730d0fbc71fa3c995343f4dffe961ed6253169212b build: py310h5588dad_0 arch: x86_64 subdir: win-64 build_number: 0 license: MIT license_family: MIT - size: 20048 - timestamp: 1701544724993 + size: 20033 + timestamp: 1706285839983 purls: - pkg:pypi/colorlog +- platform: osx-64 + name: compiler-rt + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang 17.0.6.* + - clangxx 17.0.6.* + - compiler-rt_osx-64 17.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-17.0.6-ha38d28d_1.conda + hash: + md5: 6e3e3ef883a79fb537c18cbd8865a01b + sha256: d470250e126559bf8577379b7dd41130316eab464e53bf5480285045523a0b9c + build: ha38d28d_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 94403 + timestamp: 1701469601074 +- platform: osx-64 + name: compiler-rt_osx-64 + version: 17.0.6 + category: main + manager: conda + dependencies: + - clang 17.0.6.* + - clangxx 17.0.6.* + url: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-17.0.6-ha38d28d_1.conda + hash: + md5: c1ed226b5a4e45dcef22f6717732b77a + sha256: 6d4d20d1f2419eb5765027ec582a60917233d58d4ce50c8abe3d61de8917539f + build: ha38d28d_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + constrains: + - compiler-rt 17.0.6 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + noarch: generic + size: 10089166 + timestamp: 1701469568359 - platform: linux-64 name: contourpy version: 1.2.0 @@ -1045,6 +1666,31 @@ package: timestamp: 1699041552962 purls: - pkg:pypi/contourpy +- platform: osx-64 + name: contourpy + version: 1.2.0 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - libcxx >=16.0.6 + - numpy >=1.20,<2 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.2.0-py310ha697434_0.conda + hash: + md5: 2060f3e1ecbeb42eccabc806559d569e + sha256: 899344e2160254ef03721ea9a8d6e815e23f5d4735c5738e2528577c9255e119 + build: py310ha697434_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 231793 + timestamp: 1699041789817 + purls: + - pkg:pypi/contourpy - platform: win-64 name: contourpy version: 1.2.0 @@ -1073,7 +1719,7 @@ package: - pkg:pypi/contourpy - platform: linux-64 name: coverage - version: 7.4.0 + version: 7.4.1 category: main manager: conda dependencies: @@ -1081,23 +1727,46 @@ package: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - tomli - url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.4.0-py310h2372a71_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.4.1-py310h2372a71_0.conda hash: - md5: a7b8039677f4c7d07924a715172acc27 - sha256: 2241b1a4cab9da266ab8ef8d76ef3b97ac018876d0fac4dbe87ef21a902d09a3 + md5: b2de1af90e44849451c9808312f964ae + sha256: b7cc6b26080bc3fd47c577a0145cf4e5fbc2aa21c87e757d6e5a578625cca037 build: py310h2372a71_0 arch: x86_64 subdir: linux-64 build_number: 0 license: Apache-2.0 license_family: APACHE - size: 287570 - timestamp: 1703727308266 + size: 290136 + timestamp: 1706301846836 + purls: + - pkg:pypi/coverage +- platform: osx-64 + name: coverage + version: 7.4.1 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tomli + url: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.4.1-py310hb372a2b_0.conda + hash: + md5: 8263e99edec1718a0eee539bbc998120 + sha256: 455259517466b794c154588dd8abc60131145bf5b4c74d5f05fe18c78ac285bc + build: py310hb372a2b_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 288111 + timestamp: 1706302006291 purls: - pkg:pypi/coverage - platform: win-64 name: coverage - version: 7.4.0 + version: 7.4.1 category: main manager: conda dependencies: @@ -1107,18 +1776,18 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.4.0-py310h8d17308_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/coverage-7.4.1-py310h8d17308_0.conda hash: - md5: 914af4df2cfa6f116254b7310cc8bb5c - sha256: 9f918c3383d21323f956d0c3e76693f34949137339d5e185298ba42bbdc2e520 + md5: 2430a42e0df9314ce369cf6fecb73e84 + sha256: 3041bc214c741cd2971edda4012d019754a1a7f9928ae0d1d2320bb3c8aa16f1 build: py310h8d17308_0 arch: x86_64 subdir: win-64 build_number: 0 license: Apache-2.0 license_family: APACHE - size: 305367 - timestamp: 1703727595421 + size: 307381 + timestamp: 1706302399623 purls: - pkg:pypi/coverage - platform: linux-64 @@ -1143,6 +1812,28 @@ package: timestamp: 1696677888423 purls: - pkg:pypi/cycler +- platform: osx-64 + name: cycler + version: 0.12.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_0.conda + hash: + md5: 5cd86562580f274031ede6aa6aa24441 + sha256: f221233f21b1d06971792d491445fd548224641af9443739b4b7b6d5d72954a8 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 13458 + timestamp: 1696677888423 + purls: + - pkg:pypi/cycler - platform: win-64 name: cycler version: 0.12.1 @@ -1165,6 +1856,72 @@ package: timestamp: 1696677888423 purls: - pkg:pypi/cycler +- platform: linux-64 + name: cython + version: 3.0.8 + category: main + manager: conda + dependencies: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.8-py310hc6cd4ac_0.conda + hash: + md5: e533f96945907b2e81c6b604f578b69c + sha256: 65412cbd9c794ebf75c71a80bc0ecc6eac2b73514c162ced2eb4acfc084c470d + build: py310hc6cd4ac_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 3229244 + timestamp: 1706275083193 +- platform: osx-64 + name: cython + version: 3.0.8 + category: main + manager: conda + dependencies: + - libcxx >=15 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/cython-3.0.8-py310h5daac23_0.conda + hash: + md5: 079425a6bd94efc46ada240756694547 + sha256: e291a82da13e4c4bd70a190592cb82ec1fa796d70dcc6203c7b93e3453378e27 + build: py310h5daac23_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 2926173 + timestamp: 1706275460528 +- platform: win-64 + name: cython + version: 3.0.8 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/cython-3.0.8-py310h00ffb61_0.conda + hash: + md5: a62f0c90451029592b60b51536c681f9 + sha256: 3b4f428a8daf210bf572b70aef0a47554f18a6bffaf6aa12ba1aa5d43d038229 + build: py310h00ffb61_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + size: 2706490 + timestamp: 1706275698068 - platform: linux-64 name: dav1d version: 1.2.1 @@ -1184,6 +1941,24 @@ package: license_family: BSD size: 760229 timestamp: 1685695754230 +- platform: osx-64 + name: dav1d + version: 1.2.1 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/dav1d-1.2.1-h0dc2134_0.conda + hash: + md5: 9d88733c715300a39f8ca2e936b7808d + sha256: ec71a835866b42e946cd2039a5f7a6458851a21890d315476f5e66790ac11c96 + build: h0dc2134_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 668439 + timestamp: 1685696184631 - platform: win-64 name: dav1d version: 1.2.1 @@ -1248,6 +2023,28 @@ package: timestamp: 1641555714315 purls: - pkg:pypi/decorator +- platform: osx-64 + name: decorator + version: 5.1.1 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 43afe5ab04e35e17ba28649471dd7364 + sha256: 328a6a379f9bdfd0230e51de291ce858e6479411ea4b0545fb377c71662ef3e2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 12072 + timestamp: 1641555714315 + purls: + - pkg:pypi/decorator - platform: win-64 name: decorator version: 5.1.1 @@ -1292,6 +2089,28 @@ package: timestamp: 1704321683916 purls: - pkg:pypi/distro +- platform: osx-64 + name: distro + version: 1.9.0 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/distro-1.9.0-pyhd8ed1ab_0.conda + hash: + md5: bbdb409974cd6cb30071b1d978302726 + sha256: ae1c13d709c8001331b5b9345e4bcd77e9ae712d25f7958b2ebcbe0b068731b7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 42039 + timestamp: 1704321683916 + purls: + - pkg:pypi/distro - platform: win-64 name: distro version: 1.9.0 @@ -1336,6 +2155,28 @@ package: timestamp: 1643888357950 purls: - pkg:pypi/entrypoints +- platform: osx-64 + name: entrypoints + version: '0.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 3cf04868fee0a029769bd41f4b2fbf2d + sha256: 2ec4a0900a4a9f42615fc04d0fb3286b796abe56590e8e042f6ec25e102dd5af + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 9199 + timestamp: 1643888357950 + purls: + - pkg:pypi/entrypoints - platform: win-64 name: entrypoints version: '0.4' @@ -1365,19 +2206,39 @@ package: manager: conda dependencies: - python >=3.7 - url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda hash: - md5: f6c211fee3c98229652b60a9a42ef363 - sha256: cf83dcaf9006015c8ccab3fc6770f478464a66a8769e1763ca5d7dff09d11d08 - build: pyhd8ed1ab_0 + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d + build: pyhd8ed1ab_2 arch: x86_64 subdir: linux-64 - build_number: 0 - license: BSD-3-Clause - license_family: BSD + build_number: 2 + license: MIT and PSF-2.0 noarch: python - size: 20473 - timestamp: 1700579932017 + size: 20551 + timestamp: 1704921321122 + purls: + - pkg:pypi/exceptiongroup +- platform: osx-64 + name: exceptiongroup + version: 1.2.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.0-pyhd8ed1ab_2.conda + hash: + md5: 8d652ea2ee8eaee02ed8dc820bc794aa + sha256: a6ae416383bda0e3ed14eaa187c653e22bec94ff2aa3b56970cdf0032761e80d + build: pyhd8ed1ab_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: MIT and PSF-2.0 + noarch: python + size: 20551 + timestamp: 1704921321122 purls: - pkg:pypi/exceptiongroup - platform: win-64 @@ -1423,6 +2284,28 @@ package: timestamp: 1698580072627 purls: - pkg:pypi/executing +- platform: osx-64 + name: executing + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/executing-2.0.1-pyhd8ed1ab_0.conda + hash: + md5: e16be50e378d8a4533b989035b196ab8 + sha256: c738804ab1e6376f8ea63372229a04c8d658dc90fd5a218c6273a2eaf02f4057 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 27689 + timestamp: 1698580072627 + purls: + - pkg:pypi/executing - platform: win-64 name: executing version: 2.0.1 @@ -1487,6 +2370,29 @@ package: license_family: GPL size: 2019717 timestamp: 1686584867122 +- platform: osx-64 + name: fftw + version: 3.3.10 + category: main + manager: conda + dependencies: + - libcxx >=14.0.6 + - libgfortran 5.* + - libgfortran5 >=11.3.0 + - libgfortran5 >=12.2.0 + - llvm-openmp >=14.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/fftw-3.3.10-nompi_h4fa670e_108.conda + hash: + md5: 39132ce6ed3180b42b54d40289cd4157 + sha256: c24ff84b51c148eb1a77e39a54afaad14d86700b75ccab964721ac9691cead93 + build: nompi_h4fa670e_108 + arch: x86_64 + subdir: osx-64 + build_number: 108 + license: GPL-2.0-or-later + license_family: GPL + size: 1800954 + timestamp: 1686585502118 - platform: win-64 name: fftw version: 3.3.10 @@ -1510,7 +2416,7 @@ package: timestamp: 1686584753580 - platform: linux-64 name: fluiddyn - version: 0.5.2 + version: 0.5.3 category: main manager: conda dependencies: @@ -1522,26 +2428,26 @@ package: - nbstripout - numpy - psutil >=5.2.1 - - python >=3.8 + - python >=3.9 - qtpy - scikit-image - scipy - setuptools - url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.3-pyhd8ed1ab_0.conda hash: - md5: 997e2ce32a60e98b3f032c64a60183a0 - sha256: 432305fc3502ccd87c1db2a898cc2253a1d5e4509219beac01ce0fe84dea6eef + md5: 5ed6b4ecece99a23f75875effbc9235d + sha256: 816247078590c11f588371a1981ccf82c5ce97dfafbed9742970c4f76cc29a2c build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 build_number: 0 license: CECILL-B noarch: python - size: 112860 - timestamp: 1678256847926 -- platform: win-64 + size: 120214 + timestamp: 1705572270687 +- platform: osx-64 name: fluiddyn - version: 0.5.2 + version: 0.5.3 category: main manager: conda dependencies: @@ -1553,85 +2459,78 @@ package: - nbstripout - numpy - psutil >=5.2.1 - - python >=3.8 + - python >=3.9 - qtpy - scikit-image - scipy - setuptools - url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.3-pyhd8ed1ab_0.conda hash: - md5: 997e2ce32a60e98b3f032c64a60183a0 - sha256: 432305fc3502ccd87c1db2a898cc2253a1d5e4509219beac01ce0fe84dea6eef + md5: 5ed6b4ecece99a23f75875effbc9235d + sha256: 816247078590c11f588371a1981ccf82c5ce97dfafbed9742970c4f76cc29a2c build: pyhd8ed1ab_0 arch: x86_64 - subdir: win-64 + subdir: osx-64 build_number: 0 license: CECILL-B noarch: python - size: 112860 - timestamp: 1678256847926 -- platform: linux-64 - name: fluidfft - version: 0.3.5 + size: 120214 + timestamp: 1705572270687 +- platform: win-64 + name: fluiddyn + version: 0.5.3 category: main manager: conda dependencies: - - fftw >=3.3.10,<4.0a0 - - fluiddyn - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - pandas - - pyfftw - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - transonic - url: https://conda.anaconda.org/conda-forge/linux-64/fluidfft-0.3.5-nompi_hd07f22c_100.conda + - distro + - h5netcdf + - h5py + - imageio + - matplotlib-base + - nbstripout + - numpy + - psutil >=5.2.1 + - python >=3.9 + - qtpy + - scikit-image + - scipy + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/fluiddyn-0.5.3-pyhd8ed1ab_0.conda hash: - md5: ec874bee06fb66bedcd3641485519e0f - sha256: 93bb694c15cd16d5c65917cca54b1f65d5d994743cd31816e4a5acc15e4bdd8a - build: nompi_hd07f22c_100 + md5: 5ed6b4ecece99a23f75875effbc9235d + sha256: 816247078590c11f588371a1981ccf82c5ce97dfafbed9742970c4f76cc29a2c + build: pyhd8ed1ab_0 arch: x86_64 - subdir: linux-64 - build_number: 100 - license: LicenseRef-CeCILL - size: 497878 - timestamp: 1695199972097 - purls: - - pkg:pypi/fluidfft -- platform: win-64 - name: fluidfft - version: 0.3.5 + subdir: win-64 + build_number: 0 + license: CECILL-B + noarch: python + size: 120214 + timestamp: 1705572270687 +- platform: linux-64 + name: fluidsim-core + version: 0.7.4 category: main manager: conda dependencies: - - fftw >=3.3.10,<4.0a0 - - fluiddyn - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - pandas - - pyfftw - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - transonic - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/fluidfft-0.3.5-nompi_hb3d053f_100.conda + - entrypoints + - fluiddyn >=0.3.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/fluidsim-core-0.7.4-pyhd8ed1ab_0.conda hash: - md5: 64cf3e5bc60722c5fa03c60817fc445e - sha256: f1a61466470e9e106a16caaf1900f80129916d788f44b2289fa52b7263350aa6 - build: nompi_hb3d053f_100 + md5: 6e55ee77be6a02b4f09f0d4f779a835e + sha256: 8a6d4c7c9992cd9679118dd043b29c0dd0aa5728750d2d9803b4b7dba5a67f75 + build: pyhd8ed1ab_0 arch: x86_64 - subdir: win-64 - build_number: 100 + subdir: linux-64 + build_number: 0 license: LicenseRef-CeCILL - size: 101740 - timestamp: 1695212990223 + noarch: python + size: 42531 + timestamp: 1696540098597 purls: - - pkg:pypi/fluidfft -- platform: linux-64 + - pkg:pypi/fluidsim-core +- platform: osx-64 name: fluidsim-core version: 0.7.4 category: main @@ -1646,7 +2545,7 @@ package: sha256: 8a6d4c7c9992cd9679118dd043b29c0dd0aa5728750d2d9803b4b7dba5a67f75 build: pyhd8ed1ab_0 arch: x86_64 - subdir: linux-64 + subdir: osx-64 build_number: 0 license: LicenseRef-CeCILL noarch: python @@ -1821,7 +2720,7 @@ package: timestamp: 1566932280397 - platform: linux-64 name: fonttools - version: 4.47.0 + version: 4.47.2 category: main manager: conda dependencies: @@ -1831,18 +2730,43 @@ package: - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - unicodedata2 >=14.0.0 - url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.0-py310h2372a71_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.47.2-py310h2372a71_0.conda hash: - md5: 27df6604157a2a9e782cbe720f752cf5 - sha256: 468904105e134301032749de8bf613a5cbc61d4de51bce25524716b6386885a4 + md5: 0688fca50c84de6ff0df1c6440941e0e + sha256: ade32c4caa2453f9e60b8bc0f311b9a46e82a9f589b4ebcac2563b47803b2530 build: py310h2372a71_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 2281767 - timestamp: 1702929809830 + size: 2317932 + timestamp: 1704980030943 + purls: + - pkg:pypi/fonttools +- platform: osx-64 + name: fonttools + version: 4.47.2 + category: main + manager: conda + dependencies: + - brotli + - munkres + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - unicodedata2 >=14.0.0 + url: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.47.2-py310hb372a2b_0.conda + hash: + md5: c13dca9febbf032f3207889d355144c8 + sha256: 0cc01b4c70bbb95b71cbd2495ccc7429f96a467c505f0a57b708876a605f0282 + build: py310hb372a2b_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 2217175 + timestamp: 1704980413414 purls: - pkg:pypi/fonttools - platform: win-64 @@ -1893,6 +2817,25 @@ package: license: GPL-2.0-only OR FTL size: 634972 timestamp: 1694615932610 +- platform: osx-64 + name: freetype + version: 2.12.1 + category: main + manager: conda + dependencies: + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + hash: + md5: 25152fce119320c980e5470e64834b50 + sha256: b292cf5a25f094eeb4b66e37d99a97894aafd04a5683980852a8cbddccdc8e4e + build: h60636b9_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: GPL-2.0-only OR FTL + size: 599300 + timestamp: 1694616137838 - platform: win-64 name: freetype version: 2.12.1 @@ -1939,6 +2882,30 @@ package: timestamp: 1688368852991 purls: - pkg:pypi/gast +- platform: osx-64 + name: gast + version: 0.5.4 + category: main + manager: conda + dependencies: + - python >=3.4 + url: https://conda.anaconda.org/conda-forge/noarch/gast-0.5.4-pyhd8ed1ab_0.conda + hash: + md5: 8189adbad784030b76bbf81c68d7b0d4 + sha256: e029d50d55f8fe8cf9323045f84416b7af50e25a0dc1b978f8ba6b9ca8d53ca7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - pythran >=0.12.2 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 23585 + timestamp: 1688368852991 + purls: + - pkg:pypi/gast - platform: win-64 name: gast version: 0.5.4 @@ -1970,24 +2937,24 @@ package: manager: conda dependencies: - binutils_impl_linux-64 >=2.39 - - libgcc-devel_linux-64 13.2.0 ha9c7c90_103 + - libgcc-devel_linux-64 13.2.0 ha9c7c90_105 - libgcc-ng >=13.2.0 - libgomp >=13.2.0 - - libsanitizer 13.2.0 h7e041cc_3 + - libsanitizer 13.2.0 h7e041cc_5 - libstdcxx-ng >=13.2.0 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h338b0a0_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h338b0a0_5.conda hash: - md5: 79ae2d39f23e568b18be949973e9a025 - sha256: b74a1367a1f24768b60dd3aef1f836740ec5141b182eded42cefd772244c2a61 - build: h338b0a0_3 + md5: a6be13181cb66a78544b1d5f7bac97d0 + sha256: baab8f8b9af54959735e629cf6d5ec9378166aa4c68ba8dc98dc0a781d548409 + build: h338b0a0_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 52688954 - timestamp: 1699753748621 + size: 53318565 + timestamp: 1706819323755 - platform: linux-64 name: gcc_linux-64 version: 13.2.0 @@ -2064,6 +3031,24 @@ package: license_family: MIT size: 77385 timestamp: 1678717794467 +- platform: osx-64 + name: giflib + version: 5.2.1 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.1-hb7f2c08_3.conda + hash: + md5: aca150b0186836f893ebac79019e5498 + sha256: 47515e0874bcf67e438e1d5d093b074c1781f055067195f0d00a7790a56d446d + build: hb7f2c08_3 + arch: x86_64 + subdir: osx-64 + build_number: 3 + license: MIT + license_family: MIT + size: 76514 + timestamp: 1678717973971 - platform: win-64 name: giflib version: 5.2.1 @@ -2198,14 +3183,14 @@ package: timestamp: 1604365484436 - platform: linux-64 name: gst-plugins-base - version: 1.22.8 + version: 1.22.9 category: main manager: conda dependencies: - __glibc >=2.17,<3.0.a0 - alsa-lib >=1.2.10,<1.2.11.0a0 - gettext >=0.21.1,<1.0a0 - - gstreamer 1.22.8 h98fc4e7_1 + - gstreamer 1.22.9 h98fc4e7_0 - libexpat >=2.5.0,<3.0a0 - libgcc-ng >=12 - libglib >=2.78.3,<3.0a0 @@ -2220,26 +3205,26 @@ package: - xorg-libxau >=1.0.11,<2.0a0 - xorg-libxext >=1.3.4,<2.0a0 - xorg-libxrender >=0.9.11,<0.10.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.8-h8e1006c_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.22.9-h8e1006c_0.conda hash: - md5: 3926dab94fe06d88ade0e716d77b8cf8 - sha256: 5d3d3fddd57204976097e01b156f1fa41cfe246a939719d2b72696aa060d1150 - build: h8e1006c_1 + md5: 614b81f8ed66c56b640faee7076ad14a + sha256: a4312c96a670fdbf9ff0c3efd935e42fa4b655ff33dcc52c309b76a2afaf03f0 + build: h8e1006c_0 arch: x86_64 subdir: linux-64 - build_number: 1 + build_number: 0 license: LGPL-2.0-or-later license_family: LGPL - size: 2707117 - timestamp: 1704608229364 + size: 2709696 + timestamp: 1706154948546 - platform: win-64 name: gst-plugins-base - version: 1.22.8 + version: 1.22.9 category: main manager: conda dependencies: - gettext >=0.21.1,<1.0a0 - - gstreamer 1.22.8 hb4038d2_1 + - gstreamer 1.22.9 hb4038d2_0 - libglib >=2.78.3,<3.0a0 - libogg >=1.3.4,<1.4.0a0 - libvorbis >=1.3.7,<1.4.0a0 @@ -2247,21 +3232,21 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.22.8-h001b923_1.conda + url: https://conda.anaconda.org/conda-forge/win-64/gst-plugins-base-1.22.9-h001b923_0.conda hash: - md5: abe4d4f0820e367987d2ba73a84cf328 - sha256: 76ca48fefb88699d82ebb01ebfa2f28dee0b52055803f4b2c075b7d58cf83531 - build: h001b923_1 + md5: 304b9124de13767ea8c933f72f50b348 + sha256: 509a67ce9ad9c6a992694a2ecfaff99a6aa9681a8ceab5dfa448b76cc686e887 + build: h001b923_0 arch: x86_64 subdir: win-64 - build_number: 1 + build_number: 0 license: LGPL-2.0-or-later license_family: LGPL - size: 2056819 - timestamp: 1704608568666 + size: 2034401 + timestamp: 1706155374324 - platform: linux-64 name: gstreamer - version: 1.22.8 + version: 1.22.9 category: main manager: conda dependencies: @@ -2272,21 +3257,21 @@ package: - libglib >=2.78.3,<3.0a0 - libiconv >=1.17,<2.0a0 - libstdcxx-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.8-h98fc4e7_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gstreamer-1.22.9-h98fc4e7_0.conda hash: - md5: 1b52a89485ab573a5bb83a5225ff706e - sha256: d9d24c2b67a0ea00fc9bb1afc1d45f32da9d341b81ee2830986aa66456da0e66 - build: h98fc4e7_1 + md5: bcc7157b06fce7f5e055402a8135dfd8 + sha256: aa2395bf1790f72d2706bac77430f765ec1318ca22e60e791c13ae452c045263 + build: h98fc4e7_0 arch: x86_64 subdir: linux-64 - build_number: 1 + build_number: 0 license: LGPL-2.0-or-later license_family: LGPL - size: 1980992 - timestamp: 1704607965412 + size: 1981554 + timestamp: 1706154826325 - platform: win-64 name: gstreamer - version: 1.22.8 + version: 1.22.9 category: main manager: conda dependencies: @@ -2297,39 +3282,39 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.22.8-hb4038d2_1.conda + url: https://conda.anaconda.org/conda-forge/win-64/gstreamer-1.22.9-hb4038d2_0.conda hash: - md5: d24ef655de29ac3b1e14aae9cc2eb66b - sha256: 802b22a009d0c8f45dc86de1f7eace313d5fc7e41f852b62d03395a2f1659c79 - build: hb4038d2_1 + md5: 0480eecdb44a71929d5e78bf1a8644fb + sha256: d2ba5248e1874608e6eb4e9d8f9a6af99c8395aec88696c4bfcc077e701d88f5 + build: hb4038d2_0 arch: x86_64 subdir: win-64 - build_number: 1 + build_number: 0 license: LGPL-2.0-or-later license_family: LGPL - size: 1937873 - timestamp: 1704608156356 + size: 1930741 + timestamp: 1706155201555 - platform: linux-64 name: gxx_impl_linux-64 version: 13.2.0 category: main manager: conda dependencies: - - gcc_impl_linux-64 13.2.0 h338b0a0_3 - - libstdcxx-devel_linux-64 13.2.0 ha9c7c90_103 + - gcc_impl_linux-64 13.2.0 h338b0a0_5 + - libstdcxx-devel_linux-64 13.2.0 ha9c7c90_105 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h338b0a0_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h338b0a0_5.conda hash: - md5: a5e463121f06f300e5462f98b82d0709 - sha256: 77fb3cb244466a2d7fdfddba6f7853d914a8ee569855803cebe62df9b00d4c04 - build: h338b0a0_3 + md5: 88d0ccab114eb0e837725bd48cdddae5 + sha256: 9049d84fef7526e1dde8311acd2a592bf1d6f16453e68087c17d1bda01eb7867 + build: h338b0a0_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 13191609 - timestamp: 1699754007152 + size: 13582212 + timestamp: 1706819574801 - platform: linux-64 name: gxx_linux-64 version: 13.2.0 @@ -2376,6 +3361,30 @@ package: timestamp: 1699412919171 purls: - pkg:pypi/h5netcdf +- platform: osx-64 + name: h5netcdf + version: 1.3.0 + category: main + manager: conda + dependencies: + - h5py + - packaging + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.3.0-pyhd8ed1ab_0.conda + hash: + md5: 6890388078d9a3a20ef793c5ffb169ed + sha256: 0195b109e6b18d7efa06124d268fd5dd426f67e2feaee50a358211ba4a4b219b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 42170 + timestamp: 1699412919171 + purls: + - pkg:pypi/h5netcdf - platform: win-64 name: h5netcdf version: 1.3.0 @@ -2424,6 +3433,29 @@ package: license_family: BSD size: 1175397 timestamp: 1702471777753 +- platform: osx-64 + name: h5py + version: 3.10.0 + category: main + manager: conda + dependencies: + - cached-property + - hdf5 >=1.14.3,<1.14.4.0a0 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.10.0-nompi_py310h9b28fce_101.conda + hash: + md5: 4d8acddb24357d2f7dd0969f075f8d62 + sha256: 1b1df0a7a41a141ca545ef74ee8426b282a73cfd67405759c6c220bca7060159 + build: nompi_py310h9b28fce_101 + arch: x86_64 + subdir: osx-64 + build_number: 101 + license: BSD-3-Clause + license_family: BSD + size: 1010562 + timestamp: 1702472068839 - platform: win-64 name: h5py version: 3.10.0 @@ -2501,6 +3533,33 @@ package: license_family: BSD size: 3892189 timestamp: 1701791599022 +- platform: osx-64 + name: hdf5 + version: 1.14.3 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - libaec >=1.1.2,<2.0a0 + - libcurl >=8.4.0,<9.0a0 + - libcxx >=16.0.6 + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - libgfortran5 >=13.2.0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.3-nompi_h691f4bf_100.conda + hash: + md5: 8e2ac4ae815a8c9743fe37d70f48f075 + sha256: 158dd2ab901659b47e8f7ee0ec1d9e45a1fedc4871391a44a1c8b9e8ba4c9c6b + build: nompi_h691f4bf_100 + arch: x86_64 + subdir: osx-64 + build_number: 100 + license: LicenseRef-HDF5 + license_family: BSD + size: 3720132 + timestamp: 1701792909005 - platform: win-64 name: hdf5 version: 1.14.3 @@ -2546,6 +3605,24 @@ package: license_family: MIT size: 12089150 timestamp: 1692900650789 +- platform: osx-64 + name: icu + version: '73.2' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda + hash: + md5: 5cc301d759ec03f28328428e28f65591 + sha256: f66362dc36178ac9b7c7a9b012948a9d2d050b3debec24bbd94aadbc44854185 + build: hf5e326d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 11787527 + timestamp: 1692901622519 - platform: win-64 name: icu version: '73.2' @@ -2619,6 +3696,57 @@ package: timestamp: 1704020343046 purls: - pkg:pypi/imagecodecs +- platform: osx-64 + name: imagecodecs + version: 2024.1.1 + category: main + manager: conda + dependencies: + - blosc >=1.21.5,<2.0a0 + - brunsli >=0.1,<1.0a0 + - bzip2 >=1.0.8,<2.0a0 + - c-blosc2 >=2.12.0,<3.0a0 + - charls >=2.4.2,<2.5.0a0 + - giflib >=5.2.1,<5.3.0a0 + - jxrlib >=1.1,<1.2.0a0 + - lcms2 >=2.16,<3.0a0 + - lerc >=4.0.0,<5.0a0 + - libaec >=1.1.2,<2.0a0 + - libavif16 >=1.0.1,<2.0a0 + - libbrotlicommon >=1.1.0,<1.2.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libcxx >=15 + - libdeflate >=1.19,<1.20.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libpng >=1.6.39,<1.7.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - libzopfli >=1.0.3,<1.1.0a0 + - lz4-c >=1.9.3,<1.10.0a0 + - numpy >=1.22.4,<2.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - snappy >=1.1.10,<2.0a0 + - xz >=5.2.6,<6.0a0 + - zfp >=1.0.1,<2.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/imagecodecs-2024.1.1-py310h623599c_0.conda + hash: + md5: 567a4ad469b90bfab39f7051ec9fed50 + sha256: a9682e8c336693f19aabe2c268725de2d04d2bc1c216f2ea1da7a708ee0f1126 + build: py310h623599c_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 1592983 + timestamp: 1704020731921 + purls: + - pkg:pypi/imagecodecs - platform: win-64 name: imagecodecs version: 2024.1.1 @@ -2695,6 +3823,30 @@ package: timestamp: 1702571907152 purls: - pkg:pypi/imageio +- platform: osx-64 + name: imageio + version: 2.33.1 + category: main + manager: conda + dependencies: + - numpy + - pillow >=8.3.2 + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/imageio-2.33.1-pyh8c1a49c_0.conda + hash: + md5: 1c34d58ac469a34e7e96832861368bce + sha256: 0565f3666de4d02a83c5c8e14b7d878c382720f84318d6ce1ff83b66603c01d7 + build: pyh8c1a49c_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 291146 + timestamp: 1702571907152 + purls: + - pkg:pypi/imageio - platform: win-64 name: imageio version: 2.33.1 @@ -2752,6 +3904,39 @@ package: hash: md5: null sha256: 4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e +- platform: osx-64 + name: importlib-metadata + version: 7.0.1 + category: main + manager: pypi + requires_dist: + - zipp >=0.5 + - typing-extensions >=3.6.4 ; python_version < '3.8' + - sphinx >=3.5 ; extra == 'docs' + - sphinx <7.2.5 ; extra == 'docs' + - jaraco.packaging >=9.3 ; extra == 'docs' + - rst.linker >=1.9 ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-lint ; extra == 'docs' + - jaraco.tidelift >=1.4 ; extra == 'docs' + - ipython ; extra == 'perf' + - pytest >=6 ; extra == 'testing' + - pytest-checkdocs >=2.4 ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-enabler >=2.2 ; extra == 'testing' + - pytest-ruff ; extra == 'testing' + - packaging ; extra == 'testing' + - pyfakefs ; extra == 'testing' + - flufl.flake8 ; extra == 'testing' + - pytest-perf >=0.9.2 ; extra == 'testing' + - pytest-black >=0.3.7 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - importlib-resources >=1.3 ; python_version < '3.9' and extra == 'testing' + requires_python: '>=3.8' + url: https://files.pythonhosted.org/packages/c0/8b/d8427f023c081a8303e6ac7209c16e6878f2765d5b59667f3903fbcfd365/importlib_metadata-7.0.1-py3-none-any.whl#sha256=4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e + hash: + md5: null + sha256: 4805911c3a4ec7c3966410053e9ec6a1fecd629117df5adee56dfc9432a1081e - platform: win-64 name: importlib-metadata version: 7.0.1 @@ -2810,6 +3995,31 @@ package: timestamp: 1699364734111 purls: - pkg:pypi/importlib-resources +- platform: osx-64 + name: importlib_resources + version: 6.1.1 + category: main + manager: conda + dependencies: + - python >=3.8 + - zipp >=3.1.0 + url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.1.1-pyhd8ed1ab_0.conda + hash: + md5: 3d5fa25cf42f3f32a12b2d874ace8574 + sha256: e584f9ae08fb2d242af0ce7e19e3cd2f85f362d8523119e08f99edb962db99ed + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - importlib-resources >=6.1.1,<6.1.2.0a0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 29951 + timestamp: 1699364734111 + purls: + - pkg:pypi/importlib-resources - platform: win-64 name: importlib_resources version: 6.1.1 @@ -2857,6 +4067,28 @@ package: timestamp: 1673103208955 purls: - pkg:pypi/iniconfig +- platform: osx-64 + name: iniconfig + version: 2.0.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda + hash: + md5: f800d2da156d08e289b14e87e43c1ae5 + sha256: 38740c939b668b36a50ef455b077e8015b8c9cf89860d421b3fff86048f49666 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 11101 + timestamp: 1673103208955 + purls: + - pkg:pypi/iniconfig - platform: win-64 name: iniconfig version: 2.0.0 @@ -2881,25 +4113,25 @@ package: - pkg:pypi/iniconfig - platform: win-64 name: intel-openmp - version: 2023.2.0 + version: 2024.0.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2023.2.0-h57928b3_50497.conda + url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.0.0-h57928b3_49841.conda hash: - md5: a401f3cae152deb75bbed766a90a6312 - sha256: dd9fded25ebe5c66af30ac6e3685146efdc2d7787035f01bfb546b347f138f6f - build: h57928b3_50497 + md5: e3255c8cdaf1d52f15816d1970f9c77a + sha256: 6ee8eb9080bb3268654e015dd17ad79d0c1ea98b2eee6b928ecd27f01d6b38e8 + build: h57928b3_49841 arch: x86_64 subdir: win-64 - build_number: 50497 + build_number: 49841 license: LicenseRef-ProprietaryIntel license_family: Proprietary - size: 2523079 - timestamp: 1698351323119 + size: 2325424 + timestamp: 1706182537883 - platform: linux-64 name: ipython - version: 8.20.0 + version: 8.21.0 category: main manager: conda dependencies: @@ -2916,10 +4148,10 @@ package: - stack_data - traitlets >=5 - typing_extensions - url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.20.0-pyh707e725_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.21.0-pyh707e725_0.conda hash: - md5: c2d2d7453560c80a2138c354610c08ba - sha256: 94fddc9f2f344d70aadabcccc595d0f32d87acaf4f2bce264058d4bb67c1c27f + md5: 371344fdbdf9c70cfe9adb512a8cbca6 + sha256: 521291dd15bf09fbb3ecea1c27536742d8e434c2e539b06776e734ee729bdead build: pyh707e725_0 arch: x86_64 subdir: linux-64 @@ -2927,13 +4159,47 @@ package: license: BSD-3-Clause license_family: BSD noarch: python - size: 591018 - timestamp: 1704719019020 + size: 592143 + timestamp: 1706795844870 + purls: + - pkg:pypi/ipython +- platform: osx-64 + name: ipython + version: 8.21.0 + category: main + manager: conda + dependencies: + - __unix + - decorator + - exceptiongroup + - jedi >=0.16 + - matplotlib-inline + - pexpect >4.3 + - pickleshare + - prompt-toolkit >=3.0.41,<3.1.0 + - pygments >=2.4.0 + - python >=3.10 + - stack_data + - traitlets >=5 + - typing_extensions + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.21.0-pyh707e725_0.conda + hash: + md5: 371344fdbdf9c70cfe9adb512a8cbca6 + sha256: 521291dd15bf09fbb3ecea1c27536742d8e434c2e539b06776e734ee729bdead + build: pyh707e725_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 592143 + timestamp: 1706795844870 purls: - pkg:pypi/ipython - platform: win-64 name: ipython - version: 8.20.0 + version: 8.21.0 category: main manager: conda dependencies: @@ -2950,10 +4216,10 @@ package: - stack_data - traitlets >=5 - typing_extensions - url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.20.0-pyh7428d3b_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/ipython-8.21.0-pyh7428d3b_0.conda hash: - md5: 18d1a19c6410fbc04f4bc69bad3a5f07 - sha256: 6d2c38db3b0cbe336f6abed97fcb27949d8334c1dd25134d60ced83896d6ccba + md5: 632aeffb0cce428d8b91229dbe69dbce + sha256: 91d4fe1b927354287ec9ad0314232a58e988402a0e0d6322805f81c042737038 build: pyh7428d3b_0 arch: x86_64 subdir: win-64 @@ -2961,11 +4227,34 @@ package: license: BSD-3-Clause license_family: BSD noarch: python - size: 590823 - timestamp: 1704719354431 + size: 591584 + timestamp: 1706796140240 + purls: + - pkg:pypi/ipython +- platform: linux-64 + name: jedi + version: 0.19.1 + category: main + manager: conda + dependencies: + - parso >=0.8.3,<0.9.0 + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.1-pyhd8ed1ab_0.conda + hash: + md5: 81a3be0b2023e1ea8555781f0ad904a2 + sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 841312 + timestamp: 1696326218364 purls: - - pkg:pypi/ipython -- platform: linux-64 + - pkg:pypi/jedi +- platform: osx-64 name: jedi version: 0.19.1 category: main @@ -2979,7 +4268,7 @@ package: sha256: 362f0936ef37dfd1eaa860190e42a6ebf8faa094eaa3be6aa4d9ace95f40047a build: pyhd8ed1ab_0 arch: x86_64 - subdir: linux-64 + subdir: osx-64 build_number: 0 license: MIT license_family: MIT @@ -3013,7 +4302,7 @@ package: - pkg:pypi/jedi - platform: linux-64 name: jsonschema - version: 4.20.0 + version: 4.21.1 category: main manager: conda dependencies: @@ -3024,10 +4313,10 @@ package: - python >=3.8 - referencing >=0.28.4 - rpds-py >=0.7.1 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.20.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda hash: - md5: 1116d79def5268414fb0917520b2bbf1 - sha256: 77aae609097d06deedb8ef8407a44b23d5fef95962ba6fe1c959ac7bd6195296 + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -3035,11 +4324,37 @@ package: license: MIT license_family: MIT noarch: python - size: 71908 - timestamp: 1700160056678 + size: 72817 + timestamp: 1705707712082 +- platform: osx-64 + name: jsonschema + version: 4.21.1 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - importlib_resources >=1.4.0 + - jsonschema-specifications >=2023.03.6 + - pkgutil-resolve-name >=1.3.10 + - python >=3.8 + - referencing >=0.28.4 + - rpds-py >=0.7.1 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda + hash: + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 72817 + timestamp: 1705707712082 - platform: win-64 name: jsonschema - version: 4.21.0 + version: 4.21.1 category: main manager: conda dependencies: @@ -3050,18 +4365,19 @@ package: - python >=3.8 - referencing >=0.28.4 - rpds-py >=0.7.1 - url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.21.1-pyhd8ed1ab_0.conda hash: - md5: 63dd555524e29934d1d3c9f7001ec4bd - sha256: 3562f0b6abaab7547ac3d86c5cd3eec30f0dc7072e136556ec168c8652911af7 + md5: 8a3a3d01629da20befa340919e3dd2c4 + sha256: c5c1b4e08e91fdd697289015be1a176409b4e63942899a43b276f1f250be8129 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 build_number: 0 license: MIT + license_family: MIT noarch: python - size: 72258 - timestamp: 1705441839612 + size: 72817 + timestamp: 1705707712082 - platform: linux-64 name: jsonschema-specifications version: 2023.12.1 @@ -3086,6 +4402,30 @@ package: timestamp: 1703778502971 purls: - pkg:pypi/jsonschema-specifications +- platform: osx-64 + name: jsonschema-specifications + version: 2023.12.1 + category: main + manager: conda + dependencies: + - importlib_resources >=1.4.0 + - python >=3.8 + - referencing >=0.31.0 + url: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2023.12.1-pyhd8ed1ab_0.conda + hash: + md5: a0e4efb5f35786a05af4809a2fb1f855 + sha256: a9630556ddc3121c0be32f4cbf792dd9102bd380d5cd81d57759d172cf0c2da2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 16431 + timestamp: 1703778502971 + purls: + - pkg:pypi/jsonschema-specifications - platform: win-64 name: jsonschema-specifications version: 2023.12.1 @@ -3132,6 +4472,28 @@ package: license_family: BSD size: 79924 timestamp: 1704727194527 +- platform: osx-64 + name: jupyter_core + version: 5.7.1 + category: main + manager: conda + dependencies: + - platformdirs >=2.5 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - traitlets >=5.3 + url: https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-5.7.1-py310h2ec42d9_0.conda + hash: + md5: e336a1d8fb7aa770d204a1fb49492edd + sha256: f3d8090d3a7dee20ae97952616d515f036ccd5c780d41b975734c95de9d6064d + build: py310h2ec42d9_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 80243 + timestamp: 1704727502845 - platform: win-64 name: jupyter_core version: 5.7.1 @@ -3174,6 +4536,24 @@ package: license_family: BSD size: 239104 timestamp: 1703333860145 +- platform: osx-64 + name: jxrlib + version: '1.1' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda + hash: + md5: cfaf81d843a80812fe16a68bdae60562 + sha256: a548a4be14a4c76d6d992a5c1feffcbb08062f5c57abc6e4278d40c2c9a7185b + build: h10d778d_3 + arch: x86_64 + subdir: osx-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 220376 + timestamp: 1703334073774 - platform: win-64 name: jxrlib version: '1.1' @@ -3258,6 +4638,29 @@ package: timestamp: 1695380074542 purls: - pkg:pypi/kiwisolver +- platform: osx-64 + name: kiwisolver + version: 1.4.5 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.5-py310h88cfcbd_1.conda + hash: + md5: cb1db728c5e65918e30b65f9652a3458 + sha256: ccd88bcb67f0cc8b68ed320039d58701da125de0579680d7d2ffe7857b872613 + build: py310h88cfcbd_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 60432 + timestamp: 1695380318538 + purls: + - pkg:pypi/kiwisolver - platform: win-64 name: kiwisolver version: 1.4.5 @@ -3307,6 +4710,28 @@ package: license_family: MIT size: 1371181 timestamp: 1692097755782 +- platform: osx-64 + name: krb5 + version: 1.21.2 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - openssl >=3.1.2,<4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.2-hb884880_0.conda + hash: + md5: 80505a68783f01dc8d7308c075261b2f + sha256: 081ae2008a21edf57c048f331a17c65d1ccb52d6ca2f87ee031a73eff4dc0fc6 + build: hb884880_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 1183568 + timestamp: 1692098004387 - platform: win-64 name: krb5 version: 1.21.2 @@ -3370,6 +4795,28 @@ package: timestamp: 1692295540050 purls: - pkg:pypi/lazy-loader +- platform: osx-64 + name: lazy_loader + version: '0.3' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/lazy_loader-0.3-pyhd8ed1ab_0.conda + hash: + md5: 69ea1d0fa7ab33b48c88394ad1dead65 + sha256: fa32bafbf7f9238a9cb8f0aa1fb17d2fdcefa607c217b86c38c3b670c58d1ac6 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 14298 + timestamp: 1692295540050 + purls: + - pkg:pypi/lazy-loader - platform: win-64 name: lazy_loader version: '0.3' @@ -3413,6 +4860,26 @@ package: license_family: MIT size: 245247 timestamp: 1701647787198 +- platform: osx-64 + name: lcms2 + version: '2.16' + category: main + manager: conda + dependencies: + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.16-ha2f27b4_0.conda + hash: + md5: 1442db8f03517834843666c422238c9b + sha256: 222ebc0a55544b9922f61e75015d02861e65b48f12113af41d48ba0814e14e4e + build: ha2f27b4_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 224432 + timestamp: 1701648089496 - platform: win-64 name: lcms2 version: '2.16' @@ -3436,6 +4903,33 @@ package: license_family: MIT size: 507632 timestamp: 1701648249706 +- platform: osx-64 + name: ld64_osx-64 + version: '609' + category: main + manager: conda + dependencies: + - libcxx + - libllvm17 >=17.0.6,<17.1.0a0 + - sigtool + - tapi >=1100.0.11,<1101.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-609-hd3532be_16.conda + hash: + md5: 96e42c402c291cfd897d99e85163cd01 + sha256: 6c92d1aa6f7aebb2ed5050d2759e2240cd995b0b73086bbb39f5ecdea2914ece + build: hd3532be_16 + arch: x86_64 + subdir: osx-64 + build_number: 16 + constrains: + - cctools_osx-64 973.0.1.* + - clang >=17.0.6,<18.0a0 + - ld 609.* + - cctools 973.0.1.* + license: APSL-2.0 + license_family: Other + size: 1049817 + timestamp: 1706797833035 - platform: linux-64 name: ld_impl_linux-64 version: '2.40' @@ -3476,6 +4970,25 @@ package: license_family: Apache size: 281798 timestamp: 1657977462600 +- platform: osx-64 + name: lerc + version: 4.0.0 + category: main + manager: conda + dependencies: + - libcxx >=13.0.1 + url: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2 + hash: + md5: f9d6a4c82889d5ecedec1d90eb673c55 + sha256: e41790fc0f4089726369b3c7f813117bbc14b533e0ed8b94cf75aba252e82497 + build: hb486fe8_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 290319 + timestamp: 1657977526749 - platform: win-64 name: lerc version: 4.0.0 @@ -3516,6 +5029,25 @@ package: license_family: BSD size: 35228 timestamp: 1696474021700 +- platform: osx-64 + name: libaec + version: 1.1.2 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + url: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.2-he965462_1.conda + hash: + md5: faa179050abc6af1385e0fe9dd074f91 + sha256: 1b0a0b9b67e8f155ebdc7205a7421c7aff4850a740fc9f88b3fa23282c98ed72 + build: he965462_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD-2-Clause + license_family: BSD + size: 29027 + timestamp: 1696474151758 - platform: win-64 name: libaec version: 1.1.2 @@ -3568,72 +5100,119 @@ package: category: main manager: conda dependencies: - - aom >=3.7.1,<3.8.0a0 + - aom >=3.8.1,<3.9.0a0 - dav1d >=1.2.1,<1.2.2.0a0 - libgcc-ng >=12 - rav1e >=0.6.6,<1.0a0 - svt-av1 >=1.8.0,<1.8.1.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.0.3-hef5bec9_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libavif16-1.0.3-h1dcd450_2.conda hash: - md5: 11a4e0cd0874e77396e781154a8d672f - sha256: b9cf76dcc76e44ffdc539685bd14be599f0c614e4a7d97cdf7cdc6c02a8d646b - build: hef5bec9_1 + md5: 8a7973d5489ce387996cd65d1afd7fb5 + sha256: 21f40d7f39dea54a5c70658fba244d23c982765eb5c1aeffb8cbd633aef78860 + build: h1dcd450_2 arch: x86_64 subdir: linux-64 - build_number: 1 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 95944 + timestamp: 1706675199714 +- platform: osx-64 + name: libavif16 + version: 1.0.3 + category: main + manager: conda + dependencies: + - aom >=3.8.1,<3.9.0a0 + - dav1d >=1.2.1,<1.2.2.0a0 + - rav1e >=0.6.6,<1.0a0 + - svt-av1 >=1.8.0,<1.8.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libavif16-1.0.3-hddeac66_2.conda + hash: + md5: 9b756bd6f141e077c97f7370cfe54923 + sha256: a185cda36820a340b8cd37c0832f5e264bea95401e5379129956b6e63722f6a4 + build: hddeac66_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 license: BSD-2-Clause license_family: BSD - size: 95981 - timestamp: 1702383764199 + size: 90024 + timestamp: 1706675713316 - platform: linux-64 name: libblas version: 3.9.0 category: main manager: conda dependencies: - - libopenblas >=0.3.25,<0.3.26.0a0 - - libopenblas >=0.3.25,<1.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-20_linux64_openblas.conda + - libopenblas >=0.3.26,<0.3.27.0a0 + - libopenblas >=0.3.26,<1.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-21_linux64_openblas.conda hash: - md5: 2b7bb4f7562c8cf334fc2e20c2d28abc - sha256: 8a0ee1de693a9b3da4a11b95ec81b40dd434bd01fa1f5f38f8268cd2146bf8f0 - build: 20_linux64_openblas + md5: 0ac9f44fc096772b0aa092119b00c3ca + sha256: ebd5c91f029f779fb88a1fcbd1e499559a9c258e3674ff58a2fbb4e375ae56d9 + build: 21_linux64_openblas arch: x86_64 subdir: linux-64 - build_number: 20 + build_number: 21 + constrains: + - liblapacke 3.9.0 21_linux64_openblas + - blas * openblas + - libcblas 3.9.0 21_linux64_openblas + - liblapack 3.9.0 21_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14691 + timestamp: 1705979549006 +- platform: osx-64 + name: libblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libopenblas >=0.3.26,<0.3.27.0a0 + - libopenblas >=0.3.26,<1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-21_osx64_openblas.conda + hash: + md5: 23286066c595986aa0df6452a8416c08 + sha256: 5381eab20f4793996cf22e58461ea8a3a4dff1442bb45663b5920f2d26288688 + build: 21_osx64_openblas + arch: x86_64 + subdir: osx-64 + build_number: 21 constrains: - - liblapacke 3.9.0 20_linux64_openblas - - libcblas 3.9.0 20_linux64_openblas + - libcblas 3.9.0 21_osx64_openblas + - liblapacke 3.9.0 21_osx64_openblas - blas * openblas - - liblapack 3.9.0 20_linux64_openblas + - liblapack 3.9.0 21_osx64_openblas license: BSD-3-Clause license_family: BSD - size: 14433 - timestamp: 1700568383457 + size: 14822 + timestamp: 1705979699547 - platform: win-64 name: libblas version: 3.9.0 category: main manager: conda dependencies: - - mkl 2023.2.0 h6a75c08_50497 - url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-20_win64_mkl.conda + - mkl 2024.0.0 h66d3029_49657 + url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-21_win64_mkl.conda hash: - md5: 6cad6cd2fbdeef4d651b8f752a4da960 - sha256: 34becfe991510be7b9ee05b4ae466c5a26a72af275c3071c1ca7e2308d3f7e64 - build: 20_win64_mkl + md5: ebba3846d11201fe54277e4965ba5250 + sha256: ad47053cee17802df875203aba191b04d97a50d820dbf75a114a50972c517334 + build: 21_win64_mkl arch: x86_64 subdir: win-64 - build_number: 20 + build_number: 21 constrains: - - liblapacke 3.9.0 20_win64_mkl + - liblapack 3.9.0 21_win64_mkl - blas * mkl - - liblapack 3.9.0 20_win64_mkl - - libcblas 3.9.0 20_win64_mkl + - libcblas 3.9.0 21_win64_mkl + - liblapacke 3.9.0 21_win64_mkl license: BSD-3-Clause license_family: BSD - size: 4981090 - timestamp: 1700569135332 + size: 5017135 + timestamp: 1705980415163 - platform: linux-64 name: libbrotlicommon version: 1.1.0 @@ -3653,6 +5232,24 @@ package: license_family: MIT size: 69403 timestamp: 1695990007212 +- platform: osx-64 + name: libbrotlicommon + version: 1.1.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.1.0-h0dc2134_1.conda + hash: + md5: 9e6c31441c9aa24e41ace40d6151aab6 + sha256: f57c57c442ef371982619f82af8735f93a4f50293022cfd1ffaf2ff89c2e0b2a + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 67476 + timestamp: 1695990207321 - platform: win-64 name: libbrotlicommon version: 1.1.0 @@ -3694,6 +5291,25 @@ package: license_family: MIT size: 32775 timestamp: 1695990022788 +- platform: osx-64 + name: libbrotlidec + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 h0dc2134_1 + url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.1.0-h0dc2134_1.conda + hash: + md5: 9ee0bab91b2ca579e10353738be36063 + sha256: b11939c4c93c29448660ab5f63273216969d1f2f315dd9be60f3c43c4e61a50c + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 30327 + timestamp: 1695990232422 - platform: win-64 name: libbrotlidec version: 1.1.0 @@ -3736,6 +5352,25 @@ package: license_family: MIT size: 282523 timestamp: 1695990038302 +- platform: osx-64 + name: libbrotlienc + version: 1.1.0 + category: main + manager: conda + dependencies: + - libbrotlicommon 1.1.0 h0dc2134_1 + url: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.1.0-h0dc2134_1.conda + hash: + md5: 8a421fe09c6187f0eb5e2338a8a8be6d + sha256: bc964c23e1a60ca1afe7bac38a9c1f2af3db4a8072c9f2eac4e4de537a844ac7 + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 299092 + timestamp: 1695990259225 - platform: win-64 name: libbrotlienc version: 1.1.0 @@ -3784,46 +5419,69 @@ package: category: main manager: conda dependencies: - - libblas 3.9.0 20_linux64_openblas - url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda + - libblas 3.9.0 21_linux64_openblas + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-21_linux64_openblas.conda hash: - md5: 36d486d72ab64ffea932329a1d3729a3 - sha256: 0e34fb0f82262f02fcb279ab4a1db8d50875dc98e3019452f8f387e6bf3c0247 - build: 20_linux64_openblas + md5: 4a3816d06451c4946e2db26b86472cb6 + sha256: 467bbfbfe1a1aeb8b1f9f6485eedd8ed1b6318941bf3702da72336ccf4dc25a6 + build: 21_linux64_openblas arch: x86_64 subdir: linux-64 - build_number: 20 + build_number: 21 + constrains: + - liblapacke 3.9.0 21_linux64_openblas + - blas * openblas + - liblapack 3.9.0 21_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14614 + timestamp: 1705979564122 +- platform: osx-64 + name: libcblas + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 21_osx64_openblas + url: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-21_osx64_openblas.conda + hash: + md5: 7a1b54774bad723e8ba01ca48eb301b5 + sha256: e2b1455612d4cfb3ac3170f0c538516ebd0b113780ac6603338245354e1b2f02 + build: 21_osx64_openblas + arch: x86_64 + subdir: osx-64 + build_number: 21 constrains: - - liblapacke 3.9.0 20_linux64_openblas + - liblapacke 3.9.0 21_osx64_openblas - blas * openblas - - liblapack 3.9.0 20_linux64_openblas + - liblapack 3.9.0 21_osx64_openblas license: BSD-3-Clause license_family: BSD - size: 14383 - timestamp: 1700568410580 + size: 14715 + timestamp: 1705979715508 - platform: win-64 name: libcblas version: 3.9.0 category: main manager: conda dependencies: - - libblas 3.9.0 20_win64_mkl - url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-20_win64_mkl.conda + - libblas 3.9.0 21_win64_mkl + url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-21_win64_mkl.conda hash: - md5: e6d36cfcb2f2dff0f659d2aa0813eb2d - sha256: e526023ed8e7f6fde43698cd326dd16c8448f29414bab8a9594b33deb57a5347 - build: 20_win64_mkl + md5: 38e5ec23bc2b62f9dd971143aa9dddb7 + sha256: 886505d0a4a5b508b2255991395aadecdad140719ba0d413411fec86491a9283 + build: 21_win64_mkl arch: x86_64 subdir: win-64 - build_number: 20 + build_number: 21 constrains: + - liblapack 3.9.0 21_win64_mkl - blas * mkl - - liblapack 3.9.0 20_win64_mkl - - liblapacke 3.9.0 20_win64_mkl + - liblapacke 3.9.0 21_win64_mkl license: BSD-3-Clause license_family: BSD - size: 4980937 - timestamp: 1700569208640 + size: 5017024 + timestamp: 1705980469944 - platform: linux-64 name: libclang version: 15.0.7 @@ -3871,6 +5529,26 @@ package: license_family: Apache size: 148080 timestamp: 1701415503085 +- platform: osx-64 + name: libclang-cpp17 + version: 17.0.6 + category: main + manager: conda + dependencies: + - libcxx >=16.0.6 + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp17-17.0.6-default_h6b1ee41_2.conda + hash: + md5: 2df787005c3d38861e863fe54cfde28b + sha256: d3a3a66aa769d206148acb1cbdb9c4be53916c041532c334861f2387dccc56e8 + build: default_h6b1ee41_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 13178521 + timestamp: 1704279056417 - platform: linux-64 name: libclang13 version: 15.0.7 @@ -3962,6 +5640,30 @@ package: license_family: MIT size: 389164 timestamp: 1701860147844 +- platform: osx-64 + name: libcurl + version: 8.5.0 + category: main + manager: conda + dependencies: + - krb5 >=1.21.2,<1.22.0a0 + - libnghttp2 >=1.58.0,<2.0a0 + - libssh2 >=1.11.0,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.5.0-h726d00d_0.conda + hash: + md5: 86d749e27fe00fa6b7d790a6feaa22a2 + sha256: 7ec7e026be90da0965dfa6b92bbc905c852c13b27f3f83c47156db66ed0668f0 + build: h726d00d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: curl + license_family: MIT + size: 367821 + timestamp: 1701860630644 - platform: win-64 name: libcurl version: 8.5.0 @@ -3986,6 +5688,24 @@ package: license_family: MIT size: 323619 timestamp: 1701860670113 +- platform: osx-64 + name: libcxx + version: 16.0.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-16.0.6-hd57cbcb_0.conda + hash: + md5: 7d6972792161077908b62971802f289a + sha256: 9063271847cf05f3a6cc6cae3e7f0ced032ab5f3a3c9d3f943f876f39c5c2549 + build: hd57cbcb_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 1142172 + timestamp: 1686896907750 - platform: linux-64 name: libdeflate version: '1.19' @@ -4005,6 +5725,24 @@ package: license_family: MIT size: 67080 timestamp: 1694922285678 +- platform: osx-64 + name: libdeflate + version: '1.19' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.19-ha4e1b8e_0.conda + hash: + md5: 6a45f543c2beb40023df5ee7e3cedfbd + sha256: d0f789120fedd0881b129aba9993ec5dcf0ecca67a71ea20c74394e41adcb503 + build: ha4e1b8e_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 68962 + timestamp: 1694922440450 - platform: win-64 name: libdeflate version: '1.19' @@ -4046,6 +5784,25 @@ package: license_family: BSD size: 123878 timestamp: 1597616541093 +- platform: osx-64 + name: libedit + version: 3.1.20191231 + category: main + manager: conda + dependencies: + - ncurses >=6.2,<7.0.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-h0678c8f_2.tar.bz2 + hash: + md5: 6016a8a1d0e63cac3de2c352cd40208b + sha256: dbd3c3f2eca1d21c52e4c03b21930bbce414c4592f8ce805801575b9e9256095 + build: h0678c8f_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 105382 + timestamp: 1597616576726 - platform: linux-64 name: libev version: '4.33' @@ -4065,6 +5822,24 @@ package: license_family: BSD size: 112766 timestamp: 1702146165126 +- platform: osx-64 + name: libev + version: '4.33' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda + hash: + md5: 899db79329439820b7e8f8de41bca902 + sha256: 0d238488564a7992942aa165ff994eca540f687753b4f0998b29b4e4d030ff43 + build: h10d778d_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 106663 + timestamp: 1702146352558 - platform: linux-64 name: libevent version: 2.1.12 @@ -4125,6 +5900,24 @@ package: license_family: MIT size: 58292 timestamp: 1636488182923 +- platform: osx-64 + name: libffi + version: 3.4.2 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + hash: + md5: ccb34fb14960ad8b125962d3d79b31a9 + sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f + build: h0d85af4_5 + arch: x86_64 + subdir: osx-64 + build_number: 5 + license: MIT + license_family: MIT + size: 51348 + timestamp: 1636488394370 - platform: win-64 name: libffi version: 3.4.2 @@ -4174,19 +5967,19 @@ package: category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-ha9c7c90_103.conda + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-ha9c7c90_105.conda hash: - md5: db8cd1a871a07404d94f7dcc78c21a61 - sha256: 656ec5ed716e5c7b6cca9a9406098dcd9a89b0193310930da391189c8eb44548 - build: ha9c7c90_103 + md5: 3bc29a967fee57e193ce51f51c598bca + sha256: 858029ad4d66869c533bb5a22e95e7c044ca66c61d6f403f10d9ae074a0e360e + build: ha9c7c90_105 arch: x86_64 subdir: linux-64 - build_number: 103 + build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 2578287 - timestamp: 1699753507279 + size: 2578210 + timestamp: 1706819085946 - platform: linux-64 name: libgcc-ng version: 13.2.0 @@ -4195,20 +5988,20 @@ package: dependencies: - _libgcc_mutex 0.1 conda_forge - _openmp_mutex >=4.5 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda hash: - md5: 23fdf1fef05baeb7eadc2aed5fb0011f - sha256: 5e88f658e07a30ab41b154b42c59f079b168acfa9551a75bdc972099453f4105 - build: h807b86a_3 + md5: d4ff227c46917d3b4565302a2bbb276b + sha256: d32f78bfaac282cfe5205f46d558704ad737b8dbf71f9227788a5ca80facaba4 + build: h807b86a_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 constrains: - - libgomp 13.2.0 h807b86a_3 + - libgomp 13.2.0 h807b86a_5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 773629 - timestamp: 1699753612541 + size: 770506 + timestamp: 1706819192021 - platform: linux-64 name: libgcrypt version: 1.10.3 @@ -4229,25 +6022,44 @@ package: license_family: GPL size: 634887 timestamp: 1701383493365 +- platform: osx-64 + name: libgfortran + version: 5.0.0 + category: main + manager: conda + dependencies: + - libgfortran5 13.2.0 h2873a65_2 + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_2.conda + hash: + md5: b8e969b34c05efc0c7d6bcd4f6bf5612 + sha256: 3561afe1621afb876110db15094a181f4059d3ddecf64aa59928823f689c8a06 + build: 13_2_0_h97931a8_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 110134 + timestamp: 1705767012602 - platform: linux-64 name: libgfortran-ng version: 13.2.0 category: main manager: conda dependencies: - - libgfortran5 13.2.0 ha4646dd_3 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_3.conda + - libgfortran5 13.2.0 ha4646dd_5 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_5.conda hash: - md5: 73031c79546ad06f1fe62e57fdd021bc - sha256: 5b918950b84605b6865de438757f507b1eff73c96fd562f7022c80028b088c14 - build: h69a702a_3 + md5: e73e9cfd1191783392131e6238bdb3e9 + sha256: 238c16c84124d58307376715839aa152bd4a1bf5a043052938ad6c3137d30245 + build: h69a702a_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 23837 - timestamp: 1699753845201 + size: 23829 + timestamp: 1706819413770 - platform: linux-64 name: libgfortran5 version: 13.2.0 @@ -4255,20 +6067,41 @@ package: manager: conda dependencies: - libgcc-ng >=13.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_5.conda hash: - md5: c714d905cdfa0e70200f68b80cc04764 - sha256: 0084a1d29a4f8ee3b8edad80eb6c42e5f0480f054f28cf713fb314bebb347a50 - build: ha4646dd_3 + md5: 7a6bd7a12a4bd359e2afe6c0fa1acace + sha256: ba8d94e8493222ce155bb264d9de4200e41498a458e866fedf444de809bde8b6 + build: ha4646dd_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 constrains: - libgfortran-ng 13.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 1436929 - timestamp: 1699753630186 + size: 1442769 + timestamp: 1706819209473 +- platform: osx-64 + name: libgfortran5 + version: 13.2.0 + category: main + manager: conda + dependencies: + - llvm-openmp >=8.0.0 + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_2.conda + hash: + md5: d510329afae76a26709e23b8509d2d48 + sha256: c9c8bbaaa6011fb9cf0daf22d71001a058689d2858daae0aa0b16b62b8ea7e93 + build: h2873a65_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + constrains: + - libgfortran 5.0.0 13_2_0_*_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1572047 + timestamp: 1705766952437 - platform: linux-64 name: libglib version: 2.78.3 @@ -4329,18 +6162,18 @@ package: manager: conda dependencies: - _libgcc_mutex 0.1 conda_forge - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda hash: - md5: 7124cbb46b13d395bdde68f2d215c989 - sha256: 6ebedee39b6bbbc969715d0d7fa4b381cce67e1139862604ffa393f821c08e81 - build: h807b86a_3 + md5: d211c42b9ce49aee3734fdc828731689 + sha256: 0d3d4b1b0134283ea02d58e8eb5accf3655464cf7159abf098cc694002f8d34e + build: h807b86a_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 421834 - timestamp: 1699753531479 + size: 419751 + timestamp: 1706819107383 - platform: linux-64 name: libgpg-error version: '1.47' @@ -4403,6 +6236,23 @@ package: license: LGPL-2.1-only size: 705775 timestamp: 1702682170569 +- platform: osx-64 + name: libiconv + version: '1.17' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda + hash: + md5: 6c3628d047e151efba7cf08c5e54d1ca + sha256: 23d4923baeca359423a7347c2ed7aaf48c68603df0cf8b87cc94a10b0d4e9a23 + build: hd75f5a5_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: LGPL-2.1-only + size: 666538 + timestamp: 1702682713201 - platform: win-64 name: libiconv version: '1.17' @@ -4443,6 +6293,25 @@ package: license: IJG AND BSD-3-Clause AND Zlib size: 618575 timestamp: 1694474974816 +- platform: osx-64 + name: libjpeg-turbo + version: 3.0.0 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda + hash: + md5: 72507f8e3961bc968af17435060b6dd6 + sha256: d9572fd1024adc374aae7c247d0f29fdf4b122f1e3586fe62acc18067f40d02f + build: h0dc2134_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 579748 + timestamp: 1694475265912 - platform: win-64 name: libjpeg-turbo version: 3.0.0 @@ -4471,46 +6340,69 @@ package: category: main manager: conda dependencies: - - libblas 3.9.0 20_linux64_openblas - url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-20_linux64_openblas.conda + - libblas 3.9.0 21_linux64_openblas + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-21_linux64_openblas.conda hash: - md5: 6fabc51f5e647d09cc010c40061557e0 - sha256: ad7745b8d0f2ccb9c3ba7aaa7167d62fc9f02e45eb67172ae5f0dfb5a3b1a2cc - build: 20_linux64_openblas + md5: 1a42f305615c3867684e049e85927531 + sha256: 64b5c35dce00dd6f9f53178b2fe87116282e00967970bd6551a5a42923806ded + build: 21_linux64_openblas arch: x86_64 subdir: linux-64 - build_number: 20 + build_number: 21 + constrains: + - liblapacke 3.9.0 21_linux64_openblas + - libcblas 3.9.0 21_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14599 + timestamp: 1705979579648 +- platform: osx-64 + name: liblapack + version: 3.9.0 + category: main + manager: conda + dependencies: + - libblas 3.9.0 21_osx64_openblas + url: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-21_osx64_openblas.conda + hash: + md5: cf0e4d82cfca6cd9d6c9ed3df45907c9 + sha256: 5d0ef4743e8684ad436e31bd3c378d48642815a20c260d358668ba29cd80987a + build: 21_osx64_openblas + arch: x86_64 + subdir: osx-64 + build_number: 21 constrains: - - liblapacke 3.9.0 20_linux64_openblas - - libcblas 3.9.0 20_linux64_openblas + - libcblas 3.9.0 21_osx64_openblas + - liblapacke 3.9.0 21_osx64_openblas - blas * openblas license: BSD-3-Clause license_family: BSD - size: 14350 - timestamp: 1700568424034 + size: 14738 + timestamp: 1705979734819 - platform: win-64 name: liblapack version: 3.9.0 category: main manager: conda dependencies: - - libblas 3.9.0 20_win64_mkl - url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-20_win64_mkl.conda + - libblas 3.9.0 21_win64_mkl + url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-21_win64_mkl.conda hash: - md5: 9510d07424d70fcac553d86b3e4a7c14 - sha256: 7627ef580c26e48c3496b5885fd32be4e4db49fa1077eb21235dc638489565f6 - build: 20_win64_mkl + md5: c4740f091cb75987390087934354a621 + sha256: 3fa7c08dd4edf59cb0907d2e5b74e6be890e0671f845e1bae892d212d118a7e9 + build: 21_win64_mkl arch: x86_64 subdir: win-64 - build_number: 20 + build_number: 21 constrains: - - liblapacke 3.9.0 20_win64_mkl - blas * mkl - - libcblas 3.9.0 20_win64_mkl + - libcblas 3.9.0 21_win64_mkl + - liblapacke 3.9.0 21_win64_mkl license: BSD-3-Clause license_family: BSD - size: 4980967 - timestamp: 1700569262298 + size: 5017043 + timestamp: 1705980523462 - platform: linux-64 name: libllvm15 version: 15.0.7 @@ -4534,6 +6426,28 @@ package: license_family: Apache size: 33321457 timestamp: 1701375836233 +- platform: osx-64 + name: libllvm17 + version: 17.0.6 + category: main + manager: conda + dependencies: + - libcxx >=16 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libllvm17-17.0.6-hbedff68_1.conda + hash: + md5: fcd38f0553a99fa279fb66a5bfc2fb28 + sha256: 605460ecc4ccc04163d0b06c99693864e5bcba7a9f014a5263c9856195282265 + build: hbedff68_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 26306756 + timestamp: 1701378823527 - platform: linux-64 name: libnghttp2 version: 1.58.0 @@ -4559,6 +6473,31 @@ package: license_family: MIT size: 631936 timestamp: 1702130036271 +- platform: osx-64 + name: libnghttp2 + version: 1.58.0 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - c-ares >=1.23.0,<2.0a0 + - libcxx >=16.0.6 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.58.0-h64cf6d3_1.conda + hash: + md5: faecc55c2a8155d9ff1c0ff9a0fef64f + sha256: 412fd768e787e586602f8e9ea52bf089f3460fc630f6987f0cbd89b70e9a4380 + build: h64cf6d3_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 599736 + timestamp: 1702130398536 - platform: linux-64 name: libnsl version: 2.0.1 @@ -4619,27 +6558,50 @@ package: timestamp: 1610382533961 - platform: linux-64 name: libopenblas - version: 0.3.25 + version: 0.3.26 category: main manager: conda dependencies: - libgcc-ng >=12 - libgfortran-ng - libgfortran5 >=12.3.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.25-pthreads_h413a1c8_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.26-pthreads_h413a1c8_0.conda hash: - md5: d172b34a443b95f86089e8229ddc9a17 - sha256: 628564517895ee1b09cf72c817548bd80ef1acce6a8214a8520d9f7b44c4cfaf + md5: 760ae35415f5ba8b15d09df5afe8b23a + sha256: b626954b5a1113dafec8df89fa8bf18ce9b4701464d9f084ddd7fc9fac404bbd build: pthreads_h413a1c8_0 arch: x86_64 subdir: linux-64 build_number: 0 constrains: - - openblas >=0.3.25,<0.3.26.0a0 + - openblas >=0.3.26,<0.3.27.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5578031 + timestamp: 1704950143521 +- platform: osx-64 + name: libopenblas + version: 0.3.26 + category: main + manager: conda + dependencies: + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - llvm-openmp >=16.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.26-openmp_hfef2a42_0.conda + hash: + md5: 9df60162aea811087267b515f359536c + sha256: 4a5994cc608708eca19b90b642a144bb073e4a1cd27b824281dfcae67917204e + build: openmp_hfef2a42_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - openblas >=0.3.26,<0.3.27.0a0 license: BSD-3-Clause license_family: BSD - size: 5545169 - timestamp: 1700536004164 + size: 6044576 + timestamp: 1704951566923 - platform: linux-64 name: libopus version: 1.3.1 @@ -4661,44 +6623,62 @@ package: timestamp: 1606823578035 - platform: linux-64 name: libpng - version: 1.6.39 + version: 1.6.42 category: main manager: conda dependencies: - libgcc-ng >=12 - libzlib >=1.2.13,<1.3.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.42-h2797004_0.conda hash: - md5: e1c890aebdebbfbf87e2c917187b4416 - sha256: a32b36d34e4f2490b99bddbc77d01a674d304f667f0e62c89e02c961addef462 - build: h753d276_0 + md5: d67729828dc6ff7ba44a61062ad79880 + sha256: 1a0c3a4b7fd1e101cb37dd6d2f8b5ec93409c8cae422f04470fe39a01ef59024 + build: h2797004_0 arch: x86_64 subdir: linux-64 build_number: 0 license: zlib-acknowledgement - size: 282599 - timestamp: 1669075729952 + size: 289100 + timestamp: 1706788935660 +- platform: osx-64 + name: libpng + version: 1.6.42 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.42-h92b6c6a_0.conda + hash: + md5: 7654da21e9d7ca6a8c87fbc77448588e + sha256: 57c816e3b8cd0aaca7b85e79c0cc2211789ce0729a581d006faf8daeebf51f8d + build: h92b6c6a_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: zlib-acknowledgement + size: 268963 + timestamp: 1706789121898 - platform: win-64 name: libpng - version: 1.6.39 + version: 1.6.42 category: main manager: conda dependencies: - libzlib >=1.2.13,<1.3.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - - vs2015_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.39-h19919ed_0.conda + - vc14_runtime >=14.29.30139 + url: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.42-h19919ed_0.conda hash: - md5: ab6febdb2dbd9c00803609079db4de71 - sha256: 1f139a72109366ba1da69f5bdc569b0e6783f887615807c02d7bfcc2c7575067 + md5: 9d97d0e6a5d51a7fd03c3398bc752890 + sha256: 92a7f54585bac3b5f90e89bb674be1bd2e66e281206ec056a125eec7e32bb85f build: h19919ed_0 arch: x86_64 subdir: win-64 build_number: 0 license: zlib-acknowledgement - size: 343883 - timestamp: 1669076173145 + size: 346387 + timestamp: 1706789602418 - platform: linux-64 name: libpq version: '16.1' @@ -4726,18 +6706,18 @@ package: manager: conda dependencies: - libgcc-ng >=13.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h7e041cc_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h7e041cc_5.conda hash: - md5: c63848839569bb82a3eff11f01e5de00 - sha256: db89f198b17dace0b6b71a5985cb6957a134fba96dcbbf2979c013f44cc4eb13 - build: h7e041cc_3 + md5: 3f686300a92604d1bdff9a29dd4a6639 + sha256: 97ecdab7e4e96400d712c2d6ba2b7c30a97278e9f4470ea0ff36bf4f1447b3b9 + build: h7e041cc_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 4068330 - timestamp: 1699753652142 + size: 4114208 + timestamp: 1706819228913 - platform: linux-64 name: libsndfile version: 1.2.2 @@ -4783,6 +6763,24 @@ package: license: Unlicense size: 845830 timestamp: 1700863204572 +- platform: osx-64 + name: libsqlite + version: 3.44.2 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.44.2-h92b6c6a_0.conda + hash: + md5: d4419f90019e6a2b152cd4d32f73a82f + sha256: 8a317d2aa6352feba951ca09d5bf34f565f9dd10bb14ff842b8650baa321d781 + build: h92b6c6a_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Unlicense + size: 891089 + timestamp: 1700863475542 - platform: win-64 name: libsqlite version: 3.44.2 @@ -4824,6 +6822,26 @@ package: license_family: BSD size: 271133 timestamp: 1685837707056 +- platform: osx-64 + name: libssh2 + version: 1.11.0 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.1.1,<4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.0-hd019ec5_0.conda + hash: + md5: ca3a72efba692c59a90d4b9fc0dfe774 + sha256: f3886763b88f4b24265db6036535ef77b7b77ce91b1cbe588c0fbdd861eec515 + build: hd019ec5_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 259556 + timestamp: 1685837820566 - platform: win-64 name: libssh2 version: 1.11.0 @@ -4853,37 +6871,37 @@ package: category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-ha9c7c90_103.conda + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-ha9c7c90_105.conda hash: - md5: 46947f93254fdedc5ae0725b11ca3610 - sha256: 764e5323673219c063495141b28515d7035c8f580e78cd44d2b8d8c7885e4c32 - build: ha9c7c90_103 + md5: 66383205c2e1bdf013df52fa9e3e6763 + sha256: 67e999ee56481844ca4ce2e61132c5c16f3f00a05daa1d0ea4b2c684eea5de5a + build: ha9c7c90_105 arch: x86_64 subdir: linux-64 - build_number: 103 + build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 12841490 - timestamp: 1699753551899 + size: 13020920 + timestamp: 1706819128553 - platform: linux-64 name: libstdcxx-ng version: 13.2.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_3.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda hash: - md5: 937eaed008f6bf2191c5fe76f87755e9 - sha256: 6c6c49efedcc5709a66f19fb6b26b69c6a5245310fd1d9a901fd5e38aaf7f882 - build: h7e041cc_3 + md5: f6f6600d18a4047b54f803cf708b868a + sha256: a56c5b11f1e73a86e120e6141a42d9e935a99a2098491ac9e15347a1476ce777 + build: h7e041cc_5 arch: x86_64 subdir: linux-64 - build_number: 3 + build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3842940 - timestamp: 1699753676253 + size: 3834139 + timestamp: 1706819252496 - platform: linux-64 name: libsystemd0 version: '255' @@ -4934,6 +6952,31 @@ package: license: HPND size: 283198 timestamp: 1695661593314 +- platform: osx-64 + name: libtiff + version: 4.6.0 + category: main + manager: conda + dependencies: + - lerc >=4.0.0,<5.0a0 + - libcxx >=15.0.7 + - libdeflate >=1.19,<1.20.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.6.0-h684deea_2.conda + hash: + md5: 2ca10a325063e000ad6d2a5900061e0d + sha256: 1ef5bd7295f4316b111f70ad21356fb9f0de50b85a341cac9e3a61ac6487fdf1 + build: h684deea_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: HPND + size: 266501 + timestamp: 1695661828714 - platform: win-64 name: libtiff version: 4.6.0 @@ -5042,6 +7085,26 @@ package: license_family: BSD size: 401830 timestamp: 1694709121323 +- platform: osx-64 + name: libwebp-base + version: 1.3.2 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.3.2-h0dc2134_0.conda + hash: + md5: 4e7e9d244e87d66c18d36894fd6a8ae5 + sha256: fa7580f26fec4c28321ec2ece1257f3293e0c646c635e9904679f4a8369be401 + build: h0dc2134_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - libwebp 1.3.2 + license: BSD-3-Clause + license_family: BSD + size: 346599 + timestamp: 1694709233836 - platform: win-64 name: libwebp-base version: 1.3.2 @@ -5087,6 +7150,27 @@ package: license_family: MIT size: 384238 timestamp: 1682082368177 +- platform: osx-64 + name: libxcb + version: '1.15' + category: main + manager: conda + dependencies: + - pthread-stubs + - xorg-libxau + - xorg-libxdmcp + url: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.15-hb7f2c08_0.conda + hash: + md5: 5513f57e0238c87c12dffedbcc9c1a4a + sha256: f41904f466acc8b3197f37f2dd3a08da75720c7f7464d9267635debc4ac1902b + build: hb7f2c08_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 313793 + timestamp: 1682083036825 - platform: win-64 name: libxcb version: '1.15' @@ -5154,7 +7238,7 @@ package: timestamp: 1701352639132 - platform: linux-64 name: libxml2 - version: 2.12.3 + version: 2.12.4 category: main manager: conda dependencies: @@ -5163,18 +7247,40 @@ package: - libiconv >=1.17,<2.0a0 - libzlib >=1.2.13,<1.3.0a0 - xz >=5.2.6,<6.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.3-h232c23b_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda hash: - md5: bc6ac4c0cea148d924f621985bc3892b - sha256: 31dd757689a1a28e42021208b6c740e84bcfdfee213a39c9bcc0dfbc33acf7a5 - build: h232c23b_0 + md5: 53e951fab78d7e3bab40745f7b3d1620 + sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 + build: h232c23b_1 arch: x86_64 subdir: linux-64 - build_number: 0 + build_number: 1 + license: MIT + license_family: MIT + size: 704907 + timestamp: 1705355040145 +- platform: osx-64 + name: libxml2 + version: 2.12.4 + category: main + manager: conda + dependencies: + - icu >=73.2,<74.0a0 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.4-hc0ae0f7_1.conda + hash: + md5: 6ffac7334d3c1672845bc4b2a9e39835 + sha256: edccf142e32ee5c6619aebf36c29acdb942bde32fc0585882f5848d86b3e5acd + build: hc0ae0f7_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 license: MIT license_family: MIT - size: 704325 - timestamp: 1702421185813 + size: 619880 + timestamp: 1705355303675 - platform: win-64 name: libxml2 version: 2.12.4 @@ -5219,6 +7325,26 @@ package: license_family: Other size: 61588 timestamp: 1686575217516 +- platform: osx-64 + name: libzlib + version: 1.2.13 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.2.13-h8a1eda9_5.conda + hash: + md5: 4a3ad23f6e16f99c04e166767193d700 + sha256: fc58ad7f47ffea10df1f2165369978fba0a1cc32594aad778f5eec725f334867 + build: h8a1eda9_5 + arch: x86_64 + subdir: osx-64 + build_number: 5 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 59404 + timestamp: 1686575566695 - platform: win-64 name: libzlib version: 1.2.13 @@ -5256,12 +7382,31 @@ package: sha256: ff94f30b2e86cbad6296cf3e5804d442d9e881f7ba8080d92170981662528c6e build: h9c3ff4c_0 arch: x86_64 - subdir: linux-64 + subdir: linux-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 168074 + timestamp: 1607309189989 +- platform: osx-64 + name: libzopfli + version: 1.0.3 + category: main + manager: conda + dependencies: + - libcxx >=11.0.0 + url: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + hash: + md5: 55f3f5c9bccca18d33cb3a4bcfe002d7 + sha256: 3f35f8adf997467699a01819aeabba153ef554e796618c446a9626c2173aee90 + build: h046ec9c_0 + arch: x86_64 + subdir: osx-64 build_number: 0 license: Apache-2.0 license_family: Apache - size: 168074 - timestamp: 1607309189989 + size: 162262 + timestamp: 1607309210977 - platform: win-64 name: libzopfli version: 1.0.3 @@ -5282,6 +7427,53 @@ package: license_family: Apache size: 207974 timestamp: 1607309596528 +- platform: osx-64 + name: llvm-openmp + version: 17.0.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-17.0.6-hb6ac08f_0.conda + hash: + md5: f260ab897df05f729fc3e65dbb0850ef + sha256: 9ea2f7018f335fdc55bc9b21a388eb94ea47a243d9cbf6ec3d8862d4df9fb49b + build: hb6ac08f_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - openmp 17.0.6|17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 299706 + timestamp: 1701222810938 +- platform: osx-64 + name: llvm-tools + version: 17.0.6 + category: main + manager: conda + dependencies: + - libllvm17 17.0.6 hbedff68_1 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-17.0.6-hbedff68_1.conda + hash: + md5: 4260f86b3dd201ad7ea758d783cd5613 + sha256: 2380e9ac72aba8ef351ec13c9d5b1b233057c70bf4b9b3cea0b3f5bfb5a4e211 + build: hbedff68_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + constrains: + - llvm 17.0.6 + - clang 17.0.6 + - clang-tools 17.0.6 + - llvmdev 17.0.6 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 23219165 + timestamp: 1701378990823 - platform: linux-64 name: lz4-c version: 1.9.4 @@ -5302,6 +7494,25 @@ package: license_family: BSD size: 143402 timestamp: 1674727076728 +- platform: osx-64 + name: lz4-c + version: 1.9.4 + category: main + manager: conda + dependencies: + - libcxx >=14.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.4-hf0c8a7f_0.conda + hash: + md5: aa04f7143228308662696ac24023f991 + sha256: 39aa0c01696e4e202bf5e337413de09dfeec061d89acd5f28e9968b4e93c3f48 + build: hf0c8a7f_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 156415 + timestamp: 1674727335352 - platform: win-64 name: lz4-c version: 1.9.4 @@ -5443,6 +7654,29 @@ package: timestamp: 1686175179621 purls: - pkg:pypi/markdown-it-py +- platform: osx-64 + name: markdown-it-py + version: 3.0.0 + category: main + manager: conda + dependencies: + - mdurl >=0.1,<1 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_0.conda + hash: + md5: 93a8e71256479c62074356ef6ebf501b + sha256: c041b0eaf7a6af3344d5dd452815cdc148d6284fec25a4fa3f4263b3a021e962 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 64356 + timestamp: 1686175179621 + purls: + - pkg:pypi/markdown-it-py - platform: win-64 name: markdown-it-py version: 3.0.0 @@ -5489,6 +7723,28 @@ package: license_family: PSF size: 8381 timestamp: 1700509781531 +- platform: osx-64 + name: matplotlib + version: 3.8.2 + category: main + manager: conda + dependencies: + - matplotlib-base >=3.8.2,<3.8.3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tornado >=5 + url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.8.2-py310h2ec42d9_0.conda + hash: + md5: 2b37cc24929c9a1367a9ff7782490990 + sha256: 612795c95d38f8d95263ec8367d2db00fbf0e9bb0fe6a88c61ba3c3cecd2b28d + build: py310h2ec42d9_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 8508 + timestamp: 1700510092216 - platform: win-64 name: matplotlib version: 3.8.2 @@ -5549,6 +7805,43 @@ package: timestamp: 1700509738716 purls: - pkg:pypi/matplotlib +- platform: osx-64 + name: matplotlib-base + version: 3.8.2 + category: main + manager: conda + dependencies: + - __osx >=10.12 + - __osx >=10.9 + - certifi >=2020.06.20 + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - freetype >=2.12.1,<3.0a0 + - kiwisolver >=1.3.1 + - libcxx >=16.0.6 + - numpy >=1.21,<2 + - numpy >=1.22.4,<2.0a0 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.7 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.8.2-py310hec49e92_0.conda + hash: + md5: 5b122776f9b1aa4ea1f93c1562e963fd + sha256: 744733cea72f74c683cdd06ab67934ae51082c96ed829845c038a7cfbb463dd9 + build: py310hec49e92_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + size: 6977246 + timestamp: 1700510028920 + purls: + - pkg:pypi/matplotlib - platform: win-64 name: matplotlib-base version: 3.8.2 @@ -5609,6 +7902,29 @@ package: timestamp: 1660814913405 purls: - pkg:pypi/matplotlib-inline +- platform: osx-64 + name: matplotlib-inline + version: 0.1.6 + category: main + manager: conda + dependencies: + - python >=3.6 + - traitlets + url: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2 + hash: + md5: b21613793fcc81d944c76c9f2864a7de + sha256: aa091b88aec55bfa2d9207028d8cdc689b9efb090ae27b99557e93c675be2f3c + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 12273 + timestamp: 1660814913405 + purls: + - pkg:pypi/matplotlib-inline - platform: win-64 name: matplotlib-inline version: 0.1.6 @@ -5654,6 +7970,28 @@ package: timestamp: 1704317789138 purls: - pkg:pypi/mdurl +- platform: osx-64 + name: mdurl + version: 0.1.2 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_0.conda + hash: + md5: 776a8dd9e824f77abac30e6ef43a8f7a + sha256: 64073dfb6bb429d52fff30891877b48c7ec0f89625b1bf844905b66a81cce6e1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14680 + timestamp: 1704317789138 + purls: + - pkg:pypi/mdurl - platform: win-64 name: mdurl version: 0.1.2 @@ -5698,6 +8036,28 @@ package: noarch: python size: 628020 timestamp: 1703631711442 +- platform: osx-64 + name: meson + version: 1.3.1 + category: main + manager: conda + dependencies: + - ninja >=1.8.2 + - python >=3.5.2 + - setuptools + url: https://conda.anaconda.org/conda-forge/noarch/meson-1.3.1-pyhd8ed1ab_0.conda + hash: + md5: 54744574be599bff37ee4c3624ed02d2 + sha256: b932c964d9cf054ba8165bf1120ec3ea0669ba888451afd9f5431f2155bebfad + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 628020 + timestamp: 1703631711442 - platform: win-64 name: meson version: 1.3.1 @@ -5745,7 +8105,7 @@ package: noarch: python size: 69709 timestamp: 1698322017651 -- platform: win-64 +- platform: osx-64 name: meson-python version: 0.15.0 category: main @@ -5763,7 +8123,7 @@ package: sha256: 27c4f5132d3697e5bede4179c00d32d07560585d3578d7b8dde4a1e4c5d1a67c build: pyh0c530f3_0 arch: x86_64 - subdir: win-64 + subdir: osx-64 build_number: 0 license: MIT license_family: MIT @@ -5771,169 +8131,70 @@ package: size: 69709 timestamp: 1698322017651 - platform: win-64 - name: mkl - version: 2023.2.0 - category: main - manager: conda - dependencies: - - intel-openmp 2023.* - - tbb 2021.* - url: https://conda.anaconda.org/conda-forge/win-64/mkl-2023.2.0-h6a75c08_50497.conda - hash: - md5: 064cea9f45531e7b53584acf4bd8b044 - sha256: 46ec9e767279da219398b6e79c8fa95822b2ed3c8e02ab604615b7d1213a5d5a - build: h6a75c08_50497 - arch: x86_64 - subdir: win-64 - build_number: 50497 - license: LicenseRef-ProprietaryIntel - license_family: Proprietary - size: 144666110 - timestamp: 1698352013664 -- platform: linux-64 - name: mpg123 - version: 1.32.3 + name: meson-python + version: 0.15.0 category: main manager: conda dependencies: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.3-h59595ed_0.conda - hash: - md5: bdadff838d5437aea83607ced8b37f75 - sha256: f02b8ed16b3a488938b5f9453d19ea315ce6ed0d46cc389ecfaa28f2a4c3cb16 - build: h59595ed_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: LGPL-2.1-only - license_family: LGPL - size: 491969 - timestamp: 1696265613952 -- platform: linux-64 - name: mpi - version: '1.0' - category: main - manager: conda - dependencies: [] - url: https://conda.anaconda.org/conda-forge/linux-64/mpi-1.0-mpich.tar.bz2 - hash: - md5: c1fcff3417b5a22bbc4cf6e8c23648cf - sha256: cbe8f3bff576ce067141dc34811a6c5c9b56d0da50f28b3cdcc1d6d9661d484c - build: mpich - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: BSD 3-clause - size: 4184 -- platform: win-64 - name: mpi - version: '1.0' - category: main - manager: conda - dependencies: [] - url: https://conda.anaconda.org/conda-forge/win-64/mpi-1.0-msmpi.tar.bz2 + - colorama + - meson >=0.63.3 + - ninja + - pyproject-metadata >=0.7.1 + - python >=3.7 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/meson-python-0.15.0-pyh0c530f3_0.conda hash: - md5: ecf470117289595887c7efda5de48a38 - sha256: afea9b23310bd86b8bf5f2f400fc1eb5c7e2ac60a00edf75ec1a2a6ab5ab065e - build: msmpi + md5: 3bc64565ca78ce3bb80248d09926d8f9 + sha256: 27c4f5132d3697e5bede4179c00d32d07560585d3578d7b8dde4a1e4c5d1a67c + build: pyh0c530f3_0 arch: x86_64 subdir: win-64 build_number: 0 - license: BSD 3-clause - size: 4713 - timestamp: 1610053811730 -- platform: linux-64 - name: mpi4py - version: 3.1.5 - category: main - manager: conda - dependencies: - - libgcc-ng >=12 - - mpich >=4.1.2,<5.0a0 - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/linux-64/mpi4py-3.1.5-py310h30280a6_0.conda - hash: - md5: db4f1101bada4c1dfa9b34e3acf5e787 - sha256: a0f140aae4d45a7c568feaf32133d308a7b8e69b0d39fca2166a23e6da90c0c4 - build: py310h30280a6_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: BSD-2-Clause - license_family: BSD - size: 541301 - timestamp: 1697529365378 + license: MIT + license_family: MIT + noarch: python + size: 69709 + timestamp: 1698322017651 - platform: win-64 - name: mpi4py - version: 3.1.5 + name: mkl + version: 2024.0.0 category: main manager: conda dependencies: - - msmpi - - python >=3.10,<3.11.0a0 - - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/mpi4py-3.1.5-py310h1af2bfe_0.conda + - intel-openmp 2024.* + - tbb 2021.* + url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.0.0-h66d3029_49657.conda hash: - md5: 8126c248a2399ef877c21854766e9404 - sha256: e8bc33276e7e1c4f4b198d7f3e60003547cc1ea24fbf52242abd096547cf48df - build: py310h1af2bfe_0 + md5: 006b65d9cd436247dfe053df772e041d + sha256: 928bed978827e4c891d0879d79ecda6c9104ed7df1f1d4e2e392c9c80b471be7 + build: h66d3029_49657 arch: x86_64 subdir: win-64 - build_number: 0 - license: BSD-2-Clause - license_family: BSD - size: 414371 - timestamp: 1697530166312 + build_number: 49657 + license: LicenseRef-ProprietaryIntel + license_family: Proprietary + size: 108505947 + timestamp: 1701973497498 - platform: linux-64 - name: mpich - version: 4.1.2 + name: mpg123 + version: 1.32.4 category: main manager: conda dependencies: - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 - libstdcxx-ng >=12 - - mpi 1.0 mpich - url: https://conda.anaconda.org/conda-forge/linux-64/mpich-4.1.2-h846660c_101.conda - hash: - md5: 2cb131a58b45cbe8accf951b9d089130 - sha256: bb37f98c837e14f2a6560a5b0ad822f90abaea9294505c8e7fa41919a957fae6 - build: h846660c_101 - arch: x86_64 - subdir: linux-64 - build_number: 101 - license: LicenseRef-MPICH - license_family: Other - size: 25780321 - timestamp: 1703072256042 -- platform: win-64 - name: msmpi - version: 10.1.1 - category: main - manager: conda - dependencies: - - m2w64-gcc-libs - - mpi 1.0 msmpi - - vc >=14.1,<15.0a0 - - vs2015_runtime >=14.16.27012 - url: https://conda.anaconda.org/conda-forge/win-64/msmpi-10.1.1-h3502643_7.tar.bz2 + url: https://conda.anaconda.org/conda-forge/linux-64/mpg123-1.32.4-h59595ed_0.conda hash: - md5: 00c53b79e837c2b7b0b6edffb0bcb55e - sha256: 1c69dc018dbb249e988b4c9ce246ff51ad090eef0138798727632b4952f754a9 - build: h3502643_7 + md5: 3f1017b4141e943d9bc8739237f749e8 + sha256: 512f4ad7eda3b2c9a1cc9f7931932aefa6e79567e35b76de03895e769cb3b43c + build: h59595ed_0 arch: x86_64 - subdir: win-64 - build_number: 7 - license: MIT - license_family: MIT - size: 11683549 - timestamp: 1628048550481 + subdir: linux-64 + build_number: 0 + license: LGPL-2.1-only + license_family: LGPL + size: 491061 + timestamp: 1704980200966 - platform: win-64 name: msys2-conda-epoch version: '20160418' @@ -5970,6 +8231,26 @@ package: noarch: python size: 12452 timestamp: 1600387789153 +- platform: osx-64 + name: munkres + version: 1.1.4 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2 + hash: + md5: 2ba8498c1018c1e9c61eb99b973dfe19 + sha256: f86fb22b58e93d04b6f25e0d811b56797689d598788b59dcb47f59045b568306 + build: pyh9f0ad1d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + noarch: python + size: 12452 + timestamp: 1600387789153 - platform: win-64 name: munkres version: 1.1.4 @@ -6057,6 +8338,32 @@ package: timestamp: 1690815009867 purls: - pkg:pypi/nbformat +- platform: osx-64 + name: nbformat + version: 5.9.2 + category: main + manager: conda + dependencies: + - jsonschema >=2.6 + - jupyter_core + - python >=3.8 + - python-fastjsonschema + - traitlets >=5.1 + url: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.9.2-pyhd8ed1ab_0.conda + hash: + md5: 61ba076de6530d9301a0053b02f093d2 + sha256: fc82c5a9116820757b03ffb836b36f0f50e4cd390018024dbadb0ee0217f6992 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 100446 + timestamp: 1690815009867 + purls: + - pkg:pypi/nbformat - platform: win-64 name: nbformat version: 5.9.2 @@ -6085,16 +8392,16 @@ package: - pkg:pypi/nbformat - platform: linux-64 name: nbstripout - version: 0.6.1 + version: 0.7.1 category: main manager: conda dependencies: - nbformat - python >=3.5 - url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.6.1-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.7.1-pyhd8ed1ab_0.conda hash: - md5: 53913d98739527409e0f3227ed7eef7d - sha256: 17a89af33c0e4ac72f5ec602bc8fc0c02227b18d6b4316d17471b551a6a44e5a + md5: 768adb906bdf1828ef38abde924996fd + sha256: abd1fedd7a268010ee472ab1c8bd8e44ad564dcb2bc2e67e1b18ace28e64cb56 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -6102,22 +8409,45 @@ package: license: MIT license_family: MIT noarch: python - size: 18637 - timestamp: 1664115171631 + size: 20630 + timestamp: 1707082710782 + purls: + - pkg:pypi/nbstripout +- platform: osx-64 + name: nbstripout + version: 0.7.1 + category: main + manager: conda + dependencies: + - nbformat + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.7.1-pyhd8ed1ab_0.conda + hash: + md5: 768adb906bdf1828ef38abde924996fd + sha256: abd1fedd7a268010ee472ab1c8bd8e44ad564dcb2bc2e67e1b18ace28e64cb56 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 20630 + timestamp: 1707082710782 purls: - pkg:pypi/nbstripout - platform: win-64 name: nbstripout - version: 0.6.1 + version: 0.7.1 category: main manager: conda dependencies: - nbformat - python >=3.5 - url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.6.1-pyhd8ed1ab_0.tar.bz2 + url: https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.7.1-pyhd8ed1ab_0.conda hash: - md5: 53913d98739527409e0f3227ed7eef7d - sha256: 17a89af33c0e4ac72f5ec602bc8fc0c02227b18d6b4316d17471b551a6a44e5a + md5: 768adb906bdf1828ef38abde924996fd + sha256: abd1fedd7a268010ee472ab1c8bd8e44ad564dcb2bc2e67e1b18ace28e64cb56 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -6125,8 +8455,8 @@ package: license: MIT license_family: MIT noarch: python - size: 18637 - timestamp: 1664115171631 + size: 20630 + timestamp: 1707082710782 purls: - pkg:pypi/nbstripout - platform: linux-64 @@ -6147,6 +8477,24 @@ package: license: X11 AND BSD-3-Clause size: 884434 timestamp: 1698751260967 +- platform: osx-64 + name: ncurses + version: '6.4' + category: main + manager: conda + dependencies: + - __osx >=10.9 + url: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-h93d8f39_2.conda + hash: + md5: e58f366bd4d767e9ab97ab8b272e7670 + sha256: ea0fca66bbb52a1ef0687d466518fe120b5f279684effd6fd336a7b0dddc423a + build: h93d8f39_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: X11 AND BSD-3-Clause + size: 822031 + timestamp: 1698751567986 - platform: linux-64 name: networkx version: 3.2.1 @@ -6174,6 +8522,33 @@ package: timestamp: 1698504905258 purls: - pkg:pypi/networkx +- platform: osx-64 + name: networkx + version: 3.2.1 + category: main + manager: conda + dependencies: + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/networkx-3.2.1-pyhd8ed1ab_0.conda + hash: + md5: 425fce3b531bed6ec3c74fab3e5f0a1c + sha256: 7629aa4f9f8cdff45ea7a4701fe58dccce5bf2faa01c26eb44cbb27b7e15ca9d + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - matplotlib >=3.5 + - scipy >=1.9,!=1.11.0,!=1.11.1 + - numpy >=1.22 + - pandas >=1.4 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 1149552 + timestamp: 1698504905258 + purls: + - pkg:pypi/networkx - platform: win-64 name: networkx version: 3.2.1 @@ -6221,6 +8596,25 @@ package: license_family: Apache size: 2251263 timestamp: 1676837602636 +- platform: osx-64 + name: ninja + version: 1.11.1 + category: main + manager: conda + dependencies: + - libcxx >=14.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.11.1-hb8565cd_0.conda + hash: + md5: 49ad513efe39447aa51affd47e3aa68f + sha256: 6f738d9a26fa275317b95b2b96832daab9059ef64af9a338f904a3cb684ae426 + build: hb8565cd_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 121284 + timestamp: 1676837793132 - platform: win-64 name: ninja version: 1.11.1 @@ -6264,7 +8658,7 @@ package: timestamp: 1669784948267 - platform: linux-64 name: nss - version: '3.96' + version: '3.97' category: main manager: conda dependencies: @@ -6274,18 +8668,18 @@ package: - libstdcxx-ng >=12 - libzlib >=1.2.13,<1.3.0a0 - nspr >=4.35,<5.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.96-h1d7d5a4_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/nss-3.97-h1d7d5a4_0.conda hash: - md5: 1c8f8b8eb041ecd54053fc4b6ad57957 - sha256: 9f73d55f42085d7bca59c675fea57dae2a21f3d62530e47b3d89db89ca444767 + md5: b916d71a3032416e3f9136090d814472 + sha256: a1a62d415e5b5ddbd799ad6d92b2c4a4351fda00b54d96cac2ce7afa04b2d698 build: h1d7d5a4_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MPL-2.0 license_family: MOZILLA - size: 2000770 - timestamp: 1702668797006 + size: 2014022 + timestamp: 1705921777003 - platform: linux-64 name: numpy version: 1.26.3 @@ -6315,6 +8709,34 @@ package: timestamp: 1704280779661 purls: - pkg:pypi/numpy +- platform: osx-64 + name: numpy + version: 1.26.3 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=15 + - liblapack >=3.9.0,<4.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.3-py310h4bfa8fc_0.conda + hash: + md5: efed2f9f68186f778e0daa77acab3964 + sha256: 2bd229ffeb3e749348577fd8f3dbdd214ea636244152bc3cd7afc120d0678fa4 + build: py310h4bfa8fc_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 6390276 + timestamp: 1704281413660 + purls: + - pkg:pypi/numpy - platform: win-64 name: numpy version: 1.26.3 @@ -6368,6 +8790,28 @@ package: license_family: BSD size: 356698 timestamp: 1694708325417 +- platform: osx-64 + name: openjpeg + version: 2.5.0 + category: main + manager: conda + dependencies: + - libcxx >=15.0.7 + - libpng >=1.6.39,<1.7.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.0-ha4da562_3.conda + hash: + md5: 40a36f8e9a6fdf6a78c6428ee6c44188 + sha256: fdccd9668b85bf6e798b628bceed5ff764e1114cfc4e6a4dee551cafbe549e74 + build: ha4da562_3 + arch: x86_64 + subdir: osx-64 + build_number: 3 + license: BSD-2-Clause + license_family: BSD + size: 335643 + timestamp: 1694708811338 - platform: win-64 name: openjpeg version: 2.5.0 @@ -6394,29 +8838,50 @@ package: timestamp: 1694708878963 - platform: linux-64 name: openssl - version: 3.2.0 + version: 3.2.1 category: main manager: conda dependencies: - ca-certificates - libgcc-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.0-hd590300_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_0.conda hash: - md5: 603827b39ea2b835268adb8c821b8570 - sha256: 80efc6f429bd8e622d999652e5cba2ca56fcdb9c16a439d2ce9b4313116e4a87 - build: hd590300_1 + md5: 51a753e64a3027bd7e23a189b1f6e91e + sha256: c02c12bdb898daacf7eb3d09859f93ea8f285fd1a6132ff6ff0493ab52c7fe57 + build: hd590300_0 arch: x86_64 subdir: linux-64 - build_number: 1 + build_number: 0 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2863069 + timestamp: 1706635653339 +- platform: osx-64 + name: openssl + version: 3.2.1 + category: main + manager: conda + dependencies: + - ca-certificates + url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.2.1-hd75f5a5_0.conda + hash: + md5: 3033be9a59fd744172b03971b9ccd081 + sha256: 20c1b1a34a1831c24d37ed1500ca07300171184af0c66598f3c5ca901634d713 + build: hd75f5a5_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 constrains: - pyopenssl >=22.1 license: Apache-2.0 license_family: Apache - size: 2854103 - timestamp: 1701162437033 + size: 2509168 + timestamp: 1706636810736 - platform: win-64 name: openssl - version: 3.2.0 + version: 3.2.1 category: main manager: conda dependencies: @@ -6424,20 +8889,20 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.0-hcfcfb64_1.conda + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.1-hcfcfb64_0.conda hash: - md5: d10167022f99bad12ee07dea022d5830 - sha256: 373b9671173ef3413d2a95f3781176b818db904ba82298f8447b9658d71e2cc9 - build: hcfcfb64_1 + md5: 158df8eead8092cf0e27167c8761a8dd + sha256: 1df1c43136f863d5e9ba20b703001caf9a4d0ea56bdc3eeb948c977e3d4f91d3 + build: hcfcfb64_0 arch: x86_64 subdir: win-64 - build_number: 1 + build_number: 0 constrains: - pyopenssl >=22.1 license: Apache-2.0 license_family: Apache - size: 8248125 - timestamp: 1701164404616 + size: 8229619 + timestamp: 1706638014697 - platform: linux-64 name: packaging version: '23.2' @@ -6460,6 +8925,28 @@ package: timestamp: 1696202521121 purls: - pkg:pypi/packaging +- platform: osx-64 + name: packaging + version: '23.2' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/packaging-23.2-pyhd8ed1ab_0.conda + hash: + md5: 79002079284aa895f883c6b7f3f88fd6 + sha256: 69b3ace6cca2dab9047b2c24926077d81d236bef45329d264b394001e3c3e52f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 49452 + timestamp: 1696202521121 + purls: + - pkg:pypi/packaging - platform: win-64 name: packaging version: '23.2' @@ -6484,7 +8971,7 @@ package: - pkg:pypi/packaging - platform: linux-64 name: pandas - version: 2.1.4 + version: 2.2.0 category: main manager: conda dependencies: @@ -6496,21 +8983,46 @@ package: - python-tzdata >=2022a - python_abi 3.10.* *_cp310 - pytz >=2020.1 - url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.1.4-py310hcc13569_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.0-py310hcc13569_0.conda hash: - md5: 410f7e83992a591e492c25049a859254 - sha256: d0743541397140a25a89ab0686933005a4c104d95c23ff1c322f903a50b18099 + md5: 514c836161e8b2e43e7d8fb7a28a92c4 + sha256: 540cb88ff475938dc8fd0b55a911db5daf509603eca385d2bad55013bf17e453 build: py310hcc13569_0 arch: x86_64 subdir: linux-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 12413413 - timestamp: 1702057653692 + size: 13003103 + timestamp: 1705729043583 +- platform: osx-64 + name: pandas + version: 2.2.0 + category: main + manager: conda + dependencies: + - libcxx >=15 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.10.* *_cp310 + - pytz >=2020.1 + url: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.0-py310h276d7da_0.conda + hash: + md5: 68f06445075e982fcfcdeadbba006899 + sha256: 7f5e7e9a37d546ec5de12d5816c200cd96a9bd0f20b81c5be99a38b080c9c359 + build: py310h276d7da_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 12146747 + timestamp: 1705729279528 - platform: win-64 name: pandas - version: 2.1.4 + version: 2.2.0 category: main manager: conda dependencies: @@ -6523,18 +9035,18 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.1.4-py310hecd3228_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.0-py310hecd3228_0.conda hash: - md5: 6e13abfa9738c97746bb4ce0fb117462 - sha256: ff1b3ed37c84fd85652b9965df9db6a218effa617145d7eda6589bdb1b752c03 + md5: ac5e16abe38d98df009a578b91cfcc66 + sha256: ed67f5d8410a8aee055b088b6a25dbd2c92efb15ecebed068a1f3c6d7d19039b build: py310hecd3228_0 arch: x86_64 subdir: win-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 11318695 - timestamp: 1702058188712 + size: 11829063 + timestamp: 1705729584473 - platform: linux-64 name: parso version: 0.8.3 @@ -6557,6 +9069,28 @@ package: timestamp: 1638335054552 purls: - pkg:pypi/parso +- platform: osx-64 + name: parso + version: 0.8.3 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 17a565a0c3899244e938cdf417e7b094 + sha256: 4e26d5daf5de0e31aa5e74ac56386a361b202433b83f024fdadbf07d4a244da4 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 71048 + timestamp: 1638335054552 + purls: + - pkg:pypi/parso - platform: win-64 name: parso version: 0.8.3 @@ -6625,27 +9159,71 @@ package: timestamp: 1698611415241 - platform: linux-64 name: pexpect - version: 4.8.0 + version: 4.9.0 + category: main + manager: conda + dependencies: + - ptyprocess >=0.5 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + hash: + md5: 629f3203c99b32e0988910c93e77f3b6 + sha256: 90a09d134a4a43911b716d4d6eb9d169238aff2349056f7323d9db613812667e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: ISC + noarch: python + size: 53600 + timestamp: 1706113273252 + purls: + - pkg:pypi/pexpect +- platform: osx-64 + name: pexpect + version: 4.9.0 + category: main + manager: conda + dependencies: + - ptyprocess >=0.5 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_0.conda + hash: + md5: 629f3203c99b32e0988910c93e77f3b6 + sha256: 90a09d134a4a43911b716d4d6eb9d169238aff2349056f7323d9db613812667e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: ISC + noarch: python + size: 53600 + timestamp: 1706113273252 + purls: + - pkg:pypi/pexpect +- platform: linux-64 + name: pickleshare + version: 0.7.5 category: main manager: conda dependencies: - - ptyprocess >=0.5 - - python - url: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2 + - python >=3 + url: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2 hash: - md5: 330448ce4403cc74990ac07c555942a1 - sha256: 07706c0417ead94f359ca7278f65452d3c396448777aba1da6a11fc351bdca9a - build: pyh1a96a4e_2 + md5: 415f0ebb6198cc2801c73438a9fb5761 + sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 + build: py_1003 arch: x86_64 subdir: linux-64 - build_number: 2 - license: ISC + build_number: 1003 + license: MIT + license_family: MIT noarch: python - size: 48780 - timestamp: 1667297617062 + size: 9332 + timestamp: 1602536313357 purls: - - pkg:pypi/pexpect -- platform: linux-64 + - pkg:pypi/pickleshare +- platform: osx-64 name: pickleshare version: 0.7.5 category: main @@ -6658,7 +9236,7 @@ package: sha256: a1ed1a094dd0d1b94a09ed85c283a0eb28943f2e6f22161fb45e128d35229738 build: py_1003 arch: x86_64 - subdir: linux-64 + subdir: osx-64 build_number: 1003 license: MIT license_family: MIT @@ -6718,6 +9296,34 @@ package: license: HPND size: 41213026 timestamp: 1704252199774 +- platform: osx-64 + name: pillow + version: 10.2.0 + category: main + manager: conda + dependencies: + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.7.0a0 + - libwebp-base >=1.3.2,<2.0a0 + - libxcb >=1.15,<1.16.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openjpeg >=2.5.0,<3.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - tk >=8.6.13,<8.7.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/pillow-10.2.0-py310he65384d_0.conda + hash: + md5: eb1790ac3e5bd9fb1bcb5b3c232892fc + sha256: 0ffb7d3246e20b1869a1fb749f4fafad93262c0e40b073aae8f74b10932ce152 + build: py310he65384d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: HPND + size: 41163901 + timestamp: 1704252494055 - platform: win-64 name: pillow version: 10.2.0 @@ -6751,17 +9357,17 @@ package: timestamp: 1704252639326 - platform: linux-64 name: pip - version: 23.3.2 + version: '24.0' category: main manager: conda dependencies: - python >=3.7 - setuptools - wheel - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda hash: - md5: 8591c748f98dcc02253003533bc2e4b1 - sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + md5: f586ac1e56c8638b64f9c8122a7b8a67 + sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -6769,23 +9375,47 @@ package: license: MIT license_family: MIT noarch: python - size: 1395000 - timestamp: 1702822023465 + size: 1398245 + timestamp: 1706960660581 + purls: + - pkg:pypi/pip +- platform: osx-64 + name: pip + version: '24.0' + category: main + manager: conda + dependencies: + - python >=3.7 + - setuptools + - wheel + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda + hash: + md5: f586ac1e56c8638b64f9c8122a7b8a67 + sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 1398245 + timestamp: 1706960660581 purls: - pkg:pypi/pip - platform: win-64 name: pip - version: 23.3.2 + version: '24.0' category: main manager: conda dependencies: - python >=3.7 - setuptools - wheel - url: https://conda.anaconda.org/conda-forge/noarch/pip-23.3.2-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pip-24.0-pyhd8ed1ab_0.conda hash: - md5: 8591c748f98dcc02253003533bc2e4b1 - sha256: 29096d1d53c61aeef518729add2f405df86b3629d1d738a35b15095e6a02eeed + md5: f586ac1e56c8638b64f9c8122a7b8a67 + sha256: b7c1c5d8f13e8cb491c4bd1d0d1896a4cf80fc47de01059ad77509112b664a4a build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -6793,30 +9423,89 @@ package: license: MIT license_family: MIT noarch: python - size: 1395000 - timestamp: 1702822023465 + size: 1398245 + timestamp: 1706960660581 purls: - pkg:pypi/pip - platform: linux-64 name: pixman - version: 0.43.0 + version: 0.43.2 category: main manager: conda dependencies: - libgcc-ng >=12 - libstdcxx-ng >=12 - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.0-h59595ed_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda hash: - md5: 6b4b43013628634b6cfdee6b74fd696b - sha256: 07a5ffcd34e241f900433af4c6d4904518aab76add4e1e40a2c4bad93ae43f2b + md5: 71004cbf7924e19c02746ccde9fd7123 + sha256: 366d28e2a0a191d6c535e234741e0cd1d94d713f76073d8af4a5ccb2a266121e build: h59595ed_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 387320 - timestamp: 1704646964705 + size: 386826 + timestamp: 1706549500138 +- platform: linux-64 + name: pkg-config + version: 0.29.2 + category: main + manager: conda + dependencies: + - libgcc-ng >=7.5.0 + url: https://conda.anaconda.org/conda-forge/linux-64/pkg-config-0.29.2-h36c2ea0_1008.tar.bz2 + hash: + md5: fbef41ff6a4c8140c30057466a1cdd47 + sha256: 8b35a077ceccdf6888f1e82bd3ea281175014aefdc2d4cf63d7a4c7e169c125c + build: h36c2ea0_1008 + arch: x86_64 + subdir: linux-64 + build_number: 1008 + license: GPL-2.0-or-later + license_family: GPL + size: 123341 + timestamp: 1604184579935 +- platform: osx-64 + name: pkg-config + version: 0.29.2 + category: main + manager: conda + dependencies: + - libiconv >=1.16,<2.0.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/pkg-config-0.29.2-ha3d46e9_1008.tar.bz2 + hash: + md5: 352bc6fb446a7ca608c61b33c1d5eb98 + sha256: f60d1c03c7d10e8926e767981872fdd6002d2094925df598a53c58261524c151 + build: ha3d46e9_1008 + arch: x86_64 + subdir: osx-64 + build_number: 1008 + license: GPL-2.0-or-later + license_family: GPL + size: 269087 + timestamp: 1650238856925 +- platform: win-64 + name: pkg-config + version: 0.29.2 + category: main + manager: conda + dependencies: + - libglib >=2.64.6,<3.0a0 + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + url: https://conda.anaconda.org/conda-forge/win-64/pkg-config-0.29.2-h2bf4dc2_1008.tar.bz2 + hash: + md5: 8ff5bccb4dc5d153e79b068e0bb301c5 + sha256: f2f64c4774eea3b789c9568452d8cd776bdcf7e2cda0f24bfa9dbcbd7fbb9f6f + build: h2bf4dc2_1008 + arch: x86_64 + subdir: win-64 + build_number: 1008 + license: GPL-2.0-or-later + license_family: GPL + size: 33990 + timestamp: 1604184834061 - platform: linux-64 name: pkgutil-resolve-name version: 1.3.10 @@ -6838,6 +9527,27 @@ package: timestamp: 1694617398467 purls: - pkg:pypi/pkgutil-resolve-name +- platform: osx-64 + name: pkgutil-resolve-name + version: 1.3.10 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_1.conda + hash: + md5: 405678b942f2481cecdb3e010f4925d9 + sha256: fecf95377134b0e8944762d92ecf7b0149c07d8186fb5db583125a2705c7ea0a + build: pyhd8ed1ab_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT AND PSF-2.0 + noarch: python + size: 10778 + timestamp: 1694617398467 + purls: + - pkg:pypi/pkgutil-resolve-name - platform: win-64 name: pkgutil-resolve-name version: 1.3.10 @@ -6861,15 +9571,15 @@ package: - pkg:pypi/pkgutil-resolve-name - platform: linux-64 name: platformdirs - version: 4.1.0 + version: 4.2.0 category: main manager: conda dependencies: - python >=3.8 - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda hash: - md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 - sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + md5: a0bc3eec34b0fab84be6b2da94e98e20 + sha256: 2ebfb971236ab825dd79dd6086ea742a9901008ffb9c6222c1f2b5172a8039d3 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -6877,21 +9587,43 @@ package: license: MIT license_family: MIT noarch: python - size: 20058 - timestamp: 1701708396900 + size: 20210 + timestamp: 1706713564353 + purls: + - pkg:pypi/platformdirs +- platform: osx-64 + name: platformdirs + version: 4.2.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda + hash: + md5: a0bc3eec34b0fab84be6b2da94e98e20 + sha256: 2ebfb971236ab825dd79dd6086ea742a9901008ffb9c6222c1f2b5172a8039d3 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 20210 + timestamp: 1706713564353 purls: - pkg:pypi/platformdirs - platform: win-64 name: platformdirs - version: 4.1.0 + version: 4.2.0 category: main manager: conda dependencies: - python >=3.8 - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.1.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda hash: - md5: 45a5065664da0d1dfa8f8cd2eaf05ab9 - sha256: 9e4ff17ce802159ed31344eb913eaa877688226765b77947b102b42255a53853 + md5: a0bc3eec34b0fab84be6b2da94e98e20 + sha256: 2ebfb971236ab825dd79dd6086ea742a9901008ffb9c6222c1f2b5172a8039d3 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -6899,21 +9631,21 @@ package: license: MIT license_family: MIT noarch: python - size: 20058 - timestamp: 1701708396900 + size: 20210 + timestamp: 1706713564353 purls: - pkg:pypi/platformdirs - platform: linux-64 name: pluggy - version: 1.3.0 + version: 1.4.0 category: main manager: conda dependencies: - python >=3.8 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.4.0-pyhd8ed1ab_0.conda hash: - md5: 2390bd10bed1f3fdc7a537fb5a447d8d - sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + md5: 139e9feb65187e916162917bb2484976 + sha256: 6edfd2c41938ea772096c674809bfcf2ebb9bef7e82de6c7ea0b966b86bfb4d0 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -6921,21 +9653,43 @@ package: license: MIT license_family: MIT noarch: python - size: 22548 - timestamp: 1693086745921 + size: 23384 + timestamp: 1706116931972 + purls: + - pkg:pypi/pluggy +- platform: osx-64 + name: pluggy + version: 1.4.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.4.0-pyhd8ed1ab_0.conda + hash: + md5: 139e9feb65187e916162917bb2484976 + sha256: 6edfd2c41938ea772096c674809bfcf2ebb9bef7e82de6c7ea0b966b86bfb4d0 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 23384 + timestamp: 1706116931972 purls: - pkg:pypi/pluggy - platform: win-64 name: pluggy - version: 1.3.0 + version: 1.4.0 category: main manager: conda dependencies: - python >=3.8 - url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.3.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.4.0-pyhd8ed1ab_0.conda hash: - md5: 2390bd10bed1f3fdc7a537fb5a447d8d - sha256: 7bf2ad9d747e71f1e93d0863c2c8061dd0f2fe1e582f28d292abfb40264a2eb5 + md5: 139e9feb65187e916162917bb2484976 + sha256: 6edfd2c41938ea772096c674809bfcf2ebb9bef7e82de6c7ea0b966b86bfb4d0 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -6943,8 +9697,8 @@ package: license: MIT license_family: MIT noarch: python - size: 22548 - timestamp: 1693086745921 + size: 23384 + timestamp: 1706116931972 purls: - pkg:pypi/pluggy - platform: linux-64 @@ -6969,6 +9723,28 @@ package: timestamp: 1530963184592 purls: - pkg:pypi/ply +- platform: osx-64 + name: ply + version: '3.11' + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ply-3.11-py_1.tar.bz2 + hash: + md5: 7205635cd71531943440fbfe3b6b5727 + sha256: 2cd6fae8f9cbc806b7f828f006ae4a83c23fac917cacfd73c37ce322d4324e53 + build: py_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD 3-clause + license_family: BSD + noarch: python + size: 44837 + timestamp: 1530963184592 + purls: + - pkg:pypi/ply - platform: win-64 name: ply version: '3.11' @@ -7014,6 +9790,29 @@ package: noarch: python size: 270398 timestamp: 1702399557137 +- platform: osx-64 + name: prompt-toolkit + version: 3.0.42 + category: main + manager: conda + dependencies: + - python >=3.7 + - wcwidth + url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.42-pyha770c72_0.conda + hash: + md5: 0bf64bf10eee21f46ac83c161917fa86 + sha256: 58525b2a9305fb154b2b0d43a48b9a6495441b80e4fbea44f2a34a597d2cef16 + build: pyha770c72_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - prompt_toolkit 3.0.42 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 270398 + timestamp: 1702399557137 - platform: win-64 name: prompt-toolkit version: 3.0.42 @@ -7039,30 +9838,52 @@ package: timestamp: 1702399557137 - platform: linux-64 name: psutil - version: 5.9.7 + version: 5.9.8 category: main manager: conda dependencies: - libgcc-ng >=12 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.7-py310h2372a71_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.8-py310h2372a71_0.conda hash: - md5: eb1f8f278d0b00c7b6d5c01a5b06609f - sha256: 82d01c09f10cdc0b9333c9478a05bfd55f9cf7b5a1db079938b46920fedd9f7b + md5: bd19b3096442ea342c4a5208379660b1 + sha256: f1866425aa67f3fe1e3f6e07562a4bc986fd487e01146a91eb1bdbe5ec16a836 build: py310h2372a71_0 arch: x86_64 subdir: linux-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 364816 - timestamp: 1702833263425 + size: 368328 + timestamp: 1705722544490 + purls: + - pkg:pypi/psutil +- platform: osx-64 + name: psutil + version: 5.9.8 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/psutil-5.9.8-py310hb372a2b_0.conda + hash: + md5: ec3a8263961880a89f9587670aad5c81 + sha256: 6c52cb3ea7e9e42a9fe2e2ddf9d91093fb13f067982878edc96035601ff477c0 + build: py310hb372a2b_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 375259 + timestamp: 1705722685866 purls: - pkg:pypi/psutil - platform: win-64 name: psutil - version: 5.9.7 + version: 5.9.8 category: main manager: conda dependencies: @@ -7071,18 +9892,18 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/psutil-5.9.7-py310h8d17308_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/psutil-5.9.8-py310h8d17308_0.conda hash: - md5: a6930ee4b5c84e3e63fc911c257198cb - sha256: fb5898d3b40cb645a88bcd55cd34270b63c932529a72fa383fa8fb0c26306d91 + md5: f85b83fad1e1c12c212f27039f823138 + sha256: f1ec2d213b2a45831ede5d794eb5c4d5adf072f24d12eb6f07df207bcc9de0fb build: py310h8d17308_0 arch: x86_64 subdir: win-64 build_number: 0 license: BSD-3-Clause license_family: BSD - size: 382204 - timestamp: 1702833871383 + size: 386373 + timestamp: 1705722865736 purls: - pkg:pypi/psutil - platform: linux-64 @@ -7104,6 +9925,24 @@ package: license_family: MIT size: 5625 timestamp: 1606147468727 +- platform: osx-64 + name: pthread-stubs + version: '0.4' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-hc929b4f_1001.tar.bz2 + hash: + md5: addd19059de62181cd11ae8f4ef26084 + sha256: 6e3900bb241bcdec513d4e7180fe9a19186c1a38f0b4080ed619d26014222c53 + build: hc929b4f_1001 + arch: x86_64 + subdir: osx-64 + build_number: 1001 + license: MIT + license_family: MIT + size: 5653 + timestamp: 1606147699844 - platform: win-64 name: pthread-stubs version: '0.4' @@ -7162,6 +10001,27 @@ package: timestamp: 1609419417991 purls: - pkg:pypi/ptyprocess +- platform: osx-64 + name: ptyprocess + version: 0.7.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2 + hash: + md5: 359eeb6536da0e687af562ed265ec263 + sha256: fb31e006a25eb2e18f3440eb8d17be44c8ccfae559499199f73584566d0a444a + build: pyhd3deb0d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: ISC + noarch: python + size: 16546 + timestamp: 1609419417991 + purls: + - pkg:pypi/ptyprocess - platform: linux-64 name: pulseaudio-client version: '16.1' @@ -7209,6 +10069,28 @@ package: timestamp: 1642876055775 purls: - pkg:pypi/pure-eval +- platform: osx-64 + name: pure_eval + version: 0.2.2 + category: main + manager: conda + dependencies: + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 6784285c7e55cb7212efabc79e4c2883 + sha256: 72792f9fc2b1820e37cc57f84a27bc819c71088c3002ca6db05a2e56404f9d44 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14551 + timestamp: 1642876055775 + purls: + - pkg:pypi/pure-eval - platform: win-64 name: pure_eval version: 0.2.2 @@ -7230,8 +10112,30 @@ package: size: 14551 timestamp: 1642876055775 purls: - - pkg:pypi/pure-eval -- platform: linux-64 + - pkg:pypi/pure-eval +- platform: linux-64 + name: pycodestyle + version: 2.11.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.11.1-pyhd8ed1ab_0.conda + hash: + md5: 29ff12b36df16bb66fdccd4206aaebfb + sha256: 1bd1199c16514cfbc92c0fdc143a00fc55a3deaf800a62a09ac79294606e567e + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 34318 + timestamp: 1697203012487 + purls: + - pkg:pypi/pycodestyle +- platform: osx-64 name: pycodestyle version: 2.11.1 category: main @@ -7244,7 +10148,7 @@ package: sha256: 1bd1199c16514cfbc92c0fdc143a00fc55a3deaf800a62a09ac79294606e567e build: pyhd8ed1ab_0 arch: x86_64 - subdir: linux-64 + subdir: osx-64 build_number: 0 license: MIT license_family: MIT @@ -7296,6 +10200,26 @@ package: license: BSD or GPL 2 size: 2110868 timestamp: 1673618327589 +- platform: osx-64 + name: pyfftw + version: 0.13.1 + category: main + manager: conda + dependencies: + - numpy >=1.21.6,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/pyfftw-0.13.1-py310h936d966_0.conda + hash: + md5: b35ad01fc39a399f262c10e80961eef0 + sha256: d2e5266fc69f19df4a5e3f3ec403d341925b7af7bb7dd707a84c36f5bd0617fb + build: py310h936d966_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD or GPL 2 + size: 1792035 + timestamp: 1673618525200 - platform: win-64 name: pyfftw version: 0.13.1 @@ -7342,6 +10266,28 @@ package: timestamp: 1700608076927 purls: - pkg:pypi/pygments +- platform: osx-64 + name: pygments + version: 2.17.2 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.17.2-pyhd8ed1ab_0.conda + hash: + md5: 140a7f159396547e9799aa98f9f0742e + sha256: af5f8867450dc292f98ea387d4d8945fc574284677c8f60eaa9846ede7387257 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + noarch: python + size: 860425 + timestamp: 1700608076927 + purls: + - pkg:pypi/pygments - platform: win-64 name: pygments version: 2.17.2 @@ -7425,6 +10371,67 @@ package: hash: md5: null sha256: 5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 +- platform: osx-64 + name: pymech + version: 1.5.0 + category: main + manager: pypi + requires_dist: + - numpy + - xarray !=0.20.0, !=0.20.1, >=0.19.0 + - attrs >=21.4.0 + - importlib-metadata <5.0.0 ; python_version < '3.8' + - sphinx ; extra == 'dev' + - furo ; extra == 'dev' + - sphinx-autobuild ; extra == 'dev' + - sphinx-copybutton ; extra == 'dev' + - sphinx-inline-tabs ; extra == 'dev' + - myst-nb ; extra == 'dev' + - matplotlib ; extra == 'dev' + - asv >=0.5.1 ; extra == 'dev' + - rich ; extra == 'dev' + - dask ; extra == 'dev' + - numpy >=1.18 ; extra == 'dev' + - coverage[toml] ; extra == 'dev' + - pytest >=6.2.5 ; extra == 'dev' + - pytest-cov >=3.0.0 ; extra == 'dev' + - pytest-xdist >=2.4.0 ; extra == 'dev' + - typing-extensions ; extra == 'dev' + - mypy ; extra == 'dev' + - nox ; extra == 'dev' + - pre-commit ; extra == 'dev' + - pyperf ; extra == 'dev' + - virtualenv ; extra == 'dev' + - sphinx ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-autobuild ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - myst-nb ; extra == 'docs' + - matplotlib ; extra == 'docs' + - asv >=0.5.1 ; extra == 'docs' + - rich ; extra == 'full' + - dask ; extra == 'full' + - numpy >=1.18 ; extra == 'full' + - mayavi ; extra == 'full' + - rich ; extra == 'opt' + - dask ; extra == 'opt' + - numpy >=1.18 ; extra == 'opt' + - rich ; extra == 'tests' + - dask ; extra == 'tests' + - numpy >=1.18 ; extra == 'tests' + - coverage[toml] ; extra == 'tests' + - pytest >=6.2.5 ; extra == 'tests' + - pytest-cov >=3.0.0 ; extra == 'tests' + - pytest-xdist >=2.4.0 ; extra == 'tests' + - typing-extensions ; extra == 'types' + - mypy ; extra == 'types' + - mayavi ; extra == 'vtk' + requires_python: '>=3.7' + url: https://files.pythonhosted.org/packages/60/b3/36de2dc9e303697b7986f59e5ce744cfcb23e2527d076a4f1a13af7581ba/pymech-1.5.0-py3-none-any.whl#sha256=5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 + hash: + md5: null + sha256: 5218f7905b650f170fa5fe2fe7cf2788b2332b7c2d3ab2476d11f0e84826acf2 - platform: win-64 name: pymech version: 1.5.0 @@ -7508,6 +10515,28 @@ package: timestamp: 1690737983548 purls: - pkg:pypi/pyparsing +- platform: osx-64 + name: pyparsing + version: 3.1.1 + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.1.1-pyhd8ed1ab_0.conda + hash: + md5: 176f7d56f0cfe9008bdf1bccd7de02fb + sha256: 4a1332d634b6c2501a973655d68f08c9c42c0bd509c349239127b10572b8354b + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 89521 + timestamp: 1690737983548 + purls: + - pkg:pypi/pyparsing - platform: win-64 name: pyparsing version: 3.1.1 @@ -7553,6 +10582,29 @@ package: timestamp: 1675133341609 purls: - pkg:pypi/pyproject-metadata +- platform: osx-64 + name: pyproject-metadata + version: 0.7.1 + category: main + manager: conda + dependencies: + - packaging >=19.0 + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pyproject-metadata-0.7.1-pyhd8ed1ab_0.conda + hash: + md5: dcb27826ffc94d5f04e241322239983b + sha256: 9ec35cffa163f587aeb52d1603df8374659e3be30dbc6db0e980ecb797f21fee + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 12538 + timestamp: 1675133341609 + purls: + - pkg:pypi/pyproject-metadata - platform: win-64 name: pyproject-metadata version: 0.7.1 @@ -7684,7 +10736,7 @@ package: timestamp: 1695418575552 - platform: linux-64 name: pytest - version: 7.4.4 + version: 8.0.0 category: main manager: conda dependencies: @@ -7692,13 +10744,13 @@ package: - exceptiongroup >=1.0.0rc8 - iniconfig - packaging - - pluggy >=0.12,<2.0 - - python >=3.7 + - pluggy <2.0,>=1.4.0 + - python >=3.8 - tomli >=1.0.0 - url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.0.0-pyhd8ed1ab_0.conda hash: - md5: a9d145de8c5f064b5fa68fb34725d9f4 - sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 + md5: 5ba1cc5b924226349d4a49fb547b7579 + sha256: 42717ca3e48c08b3098db01cbb3c04afd5fa67e67bad4691f2b88781269580a7 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -7708,13 +10760,43 @@ package: license: MIT license_family: MIT noarch: python - size: 244564 - timestamp: 1704035308916 + size: 251713 + timestamp: 1706448088334 + purls: + - pkg:pypi/pytest +- platform: osx-64 + name: pytest + version: 8.0.0 + category: main + manager: conda + dependencies: + - colorama + - exceptiongroup >=1.0.0rc8 + - iniconfig + - packaging + - pluggy <2.0,>=1.4.0 + - python >=3.8 + - tomli >=1.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.0.0-pyhd8ed1ab_0.conda + hash: + md5: 5ba1cc5b924226349d4a49fb547b7579 + sha256: 42717ca3e48c08b3098db01cbb3c04afd5fa67e67bad4691f2b88781269580a7 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - pytest-faulthandler >=2 + license: MIT + license_family: MIT + noarch: python + size: 251713 + timestamp: 1706448088334 purls: - pkg:pypi/pytest - platform: win-64 name: pytest - version: 7.4.4 + version: 8.0.0 category: main manager: conda dependencies: @@ -7722,13 +10804,13 @@ package: - exceptiongroup >=1.0.0rc8 - iniconfig - packaging - - pluggy >=0.12,<2.0 - - python >=3.7 + - pluggy <2.0,>=1.4.0 + - python >=3.8 - tomli >=1.0.0 - url: https://conda.anaconda.org/conda-forge/noarch/pytest-7.4.4-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/pytest-8.0.0-pyhd8ed1ab_0.conda hash: - md5: a9d145de8c5f064b5fa68fb34725d9f4 - sha256: 8979721b7f86b183d21103f3ec2734783847d317c1b754f462f407efc7c60886 + md5: 5ba1cc5b924226349d4a49fb547b7579 + sha256: 42717ca3e48c08b3098db01cbb3c04afd5fa67e67bad4691f2b88781269580a7 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -7738,8 +10820,8 @@ package: license: MIT license_family: MIT noarch: python - size: 244564 - timestamp: 1704035308916 + size: 251713 + timestamp: 1706448088334 purls: - pkg:pypi/pytest - platform: linux-64 @@ -7769,6 +10851,33 @@ package: hash: md5: null sha256: ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 +- platform: osx-64 + name: pytest-allclose + version: 1.0.0 + category: main + manager: pypi + requires_dist: + - numpy >=1.11 + - pytest + - nengo-sphinx-theme >=1.0 ; extra == 'all' + - sphinx ; extra == 'all' + - codespell ; extra == 'all' + - coverage >=4.3 ; extra == 'all' + - flake8 ; extra == 'all' + - gitlint ; extra == 'all' + - pylint ; extra == 'all' + - nengo-sphinx-theme >=1.0 ; extra == 'docs' + - sphinx ; extra == 'docs' + - codespell ; extra == 'tests' + - coverage >=4.3 ; extra == 'tests' + - flake8 ; extra == 'tests' + - gitlint ; extra == 'tests' + - pylint ; extra == 'tests' + requires_python: '>=3.5' + url: https://files.pythonhosted.org/packages/c2/95/afa083bad44faa65048a9fbc018e9bc1b40045d4232383e723a555cd8b7c/pytest_allclose-1.0.0-py3-none-any.whl#sha256=ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 + hash: + md5: null + sha256: ee1a0d5dd0322c2439aa30883ca6748f18150e7e708209852a4b67444790bc97 - platform: win-64 name: pytest-allclose version: 1.0.0 @@ -7819,6 +10928,29 @@ package: noarch: python size: 25436 timestamp: 1684965001294 +- platform: osx-64 + name: pytest-cov + version: 4.1.0 + category: main + manager: conda + dependencies: + - coverage >=5.2.1 + - pytest >=4.6 + - python >=3.7 + - toml + url: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-4.1.0-pyhd8ed1ab_0.conda + hash: + md5: 06eb685a3a0b146347a58dda979485da + sha256: f07d3b44cabbed7843de654c4a6990a08475ce3b708bb735c7da9842614586f2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 25436 + timestamp: 1684965001294 - platform: win-64 name: pytest-cov version: 4.1.0 @@ -7865,6 +10997,29 @@ package: timestamp: 1697739717579 purls: - pkg:pypi/pytest-mock +- platform: osx-64 + name: pytest-mock + version: 3.12.0 + category: main + manager: conda + dependencies: + - pytest >=5.0 + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.12.0-pyhd8ed1ab_0.conda + hash: + md5: ac9fedc9a0c397f2318e82525491dd83 + sha256: 58d3bd93a0cf9b51ac105de1e01b1fcd1fcfa5993023b67658344e329b02d6e0 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 21672 + timestamp: 1697739717579 + purls: + - pkg:pypi/pytest-mock - platform: win-64 name: pytest-mock version: 3.12.0 @@ -7920,8 +11075,37 @@ package: constrains: - python_abi 3.10.* *_cp310 license: Python-2.0 - size: 25670919 - timestamp: 1703347014418 + size: 25670919 + timestamp: 1703347014418 +- platform: osx-64 + name: python + version: 3.10.13 + category: main + manager: conda + dependencies: + - bzip2 >=1.0.8,<2.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.44.2,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.10.13-h00d2728_1_cpython.conda + hash: + md5: f33c836e5a8561cf1632a224f161470a + sha256: a7ed0fb04ae2c031fd378a42421fee673983e9c2a2fd6734a609595f56349556 + build: h00d2728_1_cpython + arch: x86_64 + subdir: osx-64 + build_number: 1 + constrains: + - python_abi 3.10.* *_cp310 + license: Python-2.0 + size: 13011373 + timestamp: 1703346424250 - platform: win-64 name: python version: 3.10.13 @@ -7974,6 +11158,29 @@ package: timestamp: 1626286448716 purls: - pkg:pypi/python-dateutil +- platform: osx-64 + name: python-dateutil + version: 2.8.2 + category: main + manager: conda + dependencies: + - python >=3.6 + - six >=1.5 + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: dd999d1cc9f79e67dbb855c8924c7984 + sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 245987 + timestamp: 1626286448716 + purls: + - pkg:pypi/python-dateutil - platform: win-64 name: python-dateutil version: 2.8.2 @@ -8019,6 +11226,28 @@ package: timestamp: 1703781171097 purls: - pkg:pypi/fastjsonschema +- platform: osx-64 + name: python-fastjsonschema + version: 2.19.1 + category: main + manager: conda + dependencies: + - python >=3.3 + url: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.19.1-pyhd8ed1ab_0.conda + hash: + md5: 4d3ceee3af4b0f9a1f48f57176bf8625 + sha256: 38b2db169d65cc5595e3ce63294c4fdb6a242ecf71f70b3ad8cad3bd4230d82f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 225250 + timestamp: 1703781171097 + purls: + - pkg:pypi/fastjsonschema - platform: win-64 name: python-fastjsonschema version: 2.19.1 @@ -8063,6 +11292,28 @@ package: timestamp: 1703878849208 purls: - pkg:pypi/tzdata +- platform: osx-64 + name: python-tzdata + version: '2023.4' + category: main + manager: conda + dependencies: + - python >=3.6 + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2023.4-pyhd8ed1ab_0.conda + hash: + md5: c79cacf8a06a51552fc651652f170208 + sha256: d2381037bf362c78654a8ece0e0f54715e09113448ddd7ed837f688536cbf176 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 146007 + timestamp: 1703878849208 + purls: + - pkg:pypi/tzdata - platform: win-64 name: python-tzdata version: '2023.4' @@ -8105,6 +11356,26 @@ package: license_family: BSD size: 6398 timestamp: 1695147363189 +- platform: osx-64 + name: python_abi + version: '3.10' + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.10-4_cp310.conda + hash: + md5: b15c816c5a86abcc4d1458dd63aa4c65 + sha256: abc26b3b5a62f9c8112a2303d24b0c590d5f7fc9470521f5a520472d59c2223e + build: 4_cp310 + arch: x86_64 + subdir: osx-64 + build_number: 4 + constrains: + - python 3.10.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6484 + timestamp: 1695147705581 - platform: win-64 name: python_abi version: '3.10' @@ -8154,6 +11425,34 @@ package: license_family: BSD size: 2200877 timestamp: 1704695185687 +- platform: osx-64 + name: pythran + version: 0.15.0 + category: main + manager: conda + dependencies: + - beniget 0.4.* + - clangxx_osx-64 + - colorlog + - decorator + - gast 0.5.* + - libcxx >=15 + - numpy >=1.22.4,<2.0a0 + - ply >=3.4 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/pythran-0.15.0-py310h076e4b7_1.conda + hash: + md5: 8eb5bcfdeacfaa239d8491f284e60e5b + sha256: 79eb3e9991f0adb1b9c0675ed4a809f1dc4b9fad31bdf097ef34f3780d4219dd + build: py310h076e4b7_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: BSD-3-Clause + license_family: BSD + size: 2219683 + timestamp: 1704695373632 - platform: win-64 name: pythran version: 0.15.0 @@ -8184,15 +11483,15 @@ package: timestamp: 1704695632909 - platform: linux-64 name: pytz - version: 2023.3.post1 + version: '2024.1' category: main manager: conda dependencies: - - python >=3.6 - url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda hash: - md5: c93346b446cd08c169d843ae5fc0da97 - sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -8200,21 +11499,43 @@ package: license: MIT license_family: MIT noarch: python - size: 187454 - timestamp: 1693930444432 + size: 188538 + timestamp: 1706886944988 + purls: + - pkg:pypi/pytz +- platform: osx-64 + name: pytz + version: '2024.1' + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + hash: + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 188538 + timestamp: 1706886944988 purls: - pkg:pypi/pytz - platform: win-64 name: pytz - version: 2023.3.post1 + version: '2024.1' category: main manager: conda dependencies: - - python >=3.6 - url: https://conda.anaconda.org/conda-forge/noarch/pytz-2023.3.post1-pyhd8ed1ab_0.conda + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda hash: - md5: c93346b446cd08c169d843ae5fc0da97 - sha256: 6b680e63d69aaf087cd43ca765a23838723ef59b0a328799e6363eb13f52c49e + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -8222,8 +11543,8 @@ package: license: MIT license_family: MIT noarch: python - size: 187454 - timestamp: 1693930444432 + size: 188538 + timestamp: 1706886944988 purls: - pkg:pypi/pytz - platform: linux-64 @@ -8250,6 +11571,29 @@ package: timestamp: 1695567803832 purls: - pkg:pypi/pywavelets +- platform: osx-64 + name: pywavelets + version: 1.4.1 + category: main + manager: conda + dependencies: + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/pywavelets-1.4.1-py310hf0b6da5_1.conda + hash: + md5: 6606a7e6b981c0dc578c436d3920e8e7 + sha256: e75ecf5d9c68bf2e9fc51982f170bb5a9542c4cb777ac40889dcd29521d61907 + build: py310hf0b6da5_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: MIT + license_family: MIT + size: 3608914 + timestamp: 1695569899715 + purls: + - pkg:pypi/pywavelets - platform: win-64 name: pywavelets version: 1.4.1 @@ -8421,6 +11765,29 @@ package: timestamp: 1698112171285 purls: - pkg:pypi/qtpy +- platform: osx-64 + name: qtpy + version: 2.4.1 + category: main + manager: conda + dependencies: + - packaging + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.1-pyhd8ed1ab_0.conda + hash: + md5: 7f391bd70d2abfb70f304ba5aa4e1261 + sha256: 925bf48e747af6ceff1b073c10b12fc94ef79c88a34729059d253e43466a33f1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 61808 + timestamp: 1698112171285 + purls: + - pkg:pypi/qtpy - platform: win-64 name: qtpy version: 2.4.1 @@ -8463,6 +11830,24 @@ package: license_family: BSD size: 15423721 timestamp: 1694329261357 +- platform: osx-64 + name: rav1e + version: 0.6.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/rav1e-0.6.6-h7205ca4_2.conda + hash: + md5: ab03527926f8ce85f84a91fd35520ef2 + sha256: 046ac50530590cd2a5d9bcb1e581bdd168e06049230ad3afd8cce2fa71b429d9 + build: h7205ca4_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 + license: BSD-2-Clause + license_family: BSD + size: 1767853 + timestamp: 1694329738983 - platform: win-64 name: rav1e version: 0.6.6 @@ -8504,19 +11889,38 @@ package: license_family: GPL size: 281456 timestamp: 1679532220005 +- platform: osx-64 + name: readline + version: '8.2' + category: main + manager: conda + dependencies: + - ncurses >=6.3,<7.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + hash: + md5: f17f77f2acf4d344734bda76829ce14e + sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 + build: h9e318b2_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: GPL-3.0-only + license_family: GPL + size: 255870 + timestamp: 1679532707590 - platform: linux-64 name: referencing - version: 0.32.1 + version: 0.33.0 category: main manager: conda dependencies: - attrs >=22.2.0 - python >=3.8 - rpds-py >=0.7.0 - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.33.0-pyhd8ed1ab_0.conda hash: - md5: 753a592b4e99d7d2cde6a8fd0797f414 - sha256: 658beff40c6355af0eeec624bbe4e892b4c68c0af2d8ff4c06677e6547140506 + md5: bc415a1c6cf049166215d6b596e0fcbe + sha256: 5707eb9ee2c7cfcc56a5223b24ab3133ff61aaa796931f3b22068e0a43ea6ecf build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -8524,23 +11928,47 @@ package: license: MIT license_family: MIT noarch: python - size: 39009 - timestamp: 1704489374195 + size: 39055 + timestamp: 1706711589688 + purls: + - pkg:pypi/referencing +- platform: osx-64 + name: referencing + version: 0.33.0 + category: main + manager: conda + dependencies: + - attrs >=22.2.0 + - python >=3.8 + - rpds-py >=0.7.0 + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.33.0-pyhd8ed1ab_0.conda + hash: + md5: bc415a1c6cf049166215d6b596e0fcbe + sha256: 5707eb9ee2c7cfcc56a5223b24ab3133ff61aaa796931f3b22068e0a43ea6ecf + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 39055 + timestamp: 1706711589688 purls: - pkg:pypi/referencing - platform: win-64 name: referencing - version: 0.32.1 + version: 0.33.0 category: main manager: conda dependencies: - attrs >=22.2.0 - python >=3.8 - rpds-py >=0.7.0 - url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.32.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/referencing-0.33.0-pyhd8ed1ab_0.conda hash: - md5: 753a592b4e99d7d2cde6a8fd0797f414 - sha256: 658beff40c6355af0eeec624bbe4e892b4c68c0af2d8ff4c06677e6547140506 + md5: bc415a1c6cf049166215d6b596e0fcbe + sha256: 5707eb9ee2c7cfcc56a5223b24ab3133ff61aaa796931f3b22068e0a43ea6ecf build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -8548,8 +11976,8 @@ package: license: MIT license_family: MIT noarch: python - size: 39009 - timestamp: 1704489374195 + size: 39055 + timestamp: 1706711589688 purls: - pkg:pypi/referencing - platform: linux-64 @@ -8575,6 +12003,29 @@ package: noarch: python size: 184071 timestamp: 1700160247583 +- platform: osx-64 + name: rich + version: 13.7.0 + category: main + manager: conda + dependencies: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.7.0 + - typing_extensions >=4.0.0,<5.0.0 + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.7.0-pyhd8ed1ab_0.conda + hash: + md5: d7a11d4f3024b2f4a6e0ae7377dd61e9 + sha256: 4bb25bf1f5664772b2c4c2e3878aa6e7dc2695f97e3da4ee8e47c51e179913bb + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 184071 + timestamp: 1700160247583 - platform: win-64 name: rich version: 13.7.0 @@ -8600,25 +12051,47 @@ package: timestamp: 1700160247583 - platform: linux-64 name: rpds-py - version: 0.16.2 + version: 0.17.1 category: main manager: conda dependencies: - libgcc-ng >=12 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.16.2-py310hcb5633a_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.17.1-py310hcb5633a_0.conda hash: - md5: 849507c9b0652ec09c110bcc5213f482 - sha256: ebd8fb3040ec0ba40fe72da8136b847edd6f878a8f6862e534165d721a8af0d8 + md5: 57f7538a66c2db6572d8ef7f0a103fc2 + sha256: c1ecf5a6746aadd2d3a7bbde172a6c822efa659eb158b9b406ebebb1bc7e4f75 build: py310hcb5633a_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 998423 - timestamp: 1703822841816 + size: 1018199 + timestamp: 1705159996734 + purls: + - pkg:pypi/rpds-py +- platform: osx-64 + name: rpds-py + version: 0.17.1 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.17.1-py310h0e083fb_0.conda + hash: + md5: 44903572df153cc71224e055b3dbeffa + sha256: cd51dc44921f392b655f75a95073b80fa9e3c3a366064fab9b8e0b3706a42c60 + build: py310h0e083fb_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 312152 + timestamp: 1705160283579 purls: - pkg:pypi/rpds-py - platform: win-64 @@ -8671,21 +12144,63 @@ package: sha256: dcb6cc7c27dfa8aa041ff7a9c237898bc82cc116f1e16665ee573d70a84df1f4 build: py310hcc13569_2 arch: x86_64 - subdir: linux-64 + subdir: linux-64 + build_number: 2 + constrains: + - astropy >=5.0 + - pooch >=1.6.0 + - dask-core >=2021.1.0 + - cloudpickle >=0.2.1 + - scikit-learn >=1.0 + - cytoolz >=0.11.0 + - matplotlib-base >=3.5 + - toolz >=0.10.0 + license: BSD-3-Clause + license_family: BSD + size: 10783294 + timestamp: 1697029221996 + purls: + - pkg:pypi/scikit-image +- platform: osx-64 + name: scikit-image + version: 0.22.0 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - imageio >=2.27 + - lazy_loader >=0.2 + - libcxx >=16.0.6 + - networkx >=2.8 + - numpy >=1.22.4,<2.0a0 + - packaging >=21 + - pillow >=9.0.1 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + - pywavelets >=1.1.1 + - scipy >=1.8 + - tifffile >=2022.8.12 + url: https://conda.anaconda.org/conda-forge/osx-64/scikit-image-0.22.0-py310hdba192b_2.conda + hash: + md5: 48d3be7481c343fb0fc3570ec43d8e54 + sha256: 0f87bcc653e7acdfde11201bd6946d34b4e37588d134d2cda935dc2d6532da50 + build: py310hdba192b_2 + arch: x86_64 + subdir: osx-64 build_number: 2 constrains: - - astropy >=5.0 - pooch >=1.6.0 - - dask-core >=2021.1.0 - cloudpickle >=0.2.1 + - dask-core >=2021.1.0 - scikit-learn >=1.0 - cytoolz >=0.11.0 - - matplotlib-base >=3.5 + - astropy >=5.0 - toolz >=0.10.0 + - matplotlib-base >=3.5 license: BSD-3-Clause license_family: BSD - size: 10783294 - timestamp: 1697029221996 + size: 10380683 + timestamp: 1697029630464 purls: - pkg:pypi/scikit-image - platform: win-64 @@ -8733,7 +12248,7 @@ package: - pkg:pypi/scikit-image - platform: linux-64 name: scipy - version: 1.11.4 + version: 1.12.0 category: main manager: conda dependencies: @@ -8748,21 +12263,50 @@ package: - numpy >=1.22.4,<2.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py310hb13e2d6_0.conda + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.12.0-py310hb13e2d6_2.conda hash: - md5: f0063b2885bfae11324a00a693f88781 - sha256: d465ffa50c22c0ce7472831abbb01f10411bb62d2ee3b493ff3fe3dc214765cb - build: py310hb13e2d6_0 + md5: cd3baec470071490bc5ab05da64c52b5 + sha256: 336c5c1b29441b99033375d084ed24a65bea852a02b3c79954134fc5ada8c6c4 + build: py310hb13e2d6_2 arch: x86_64 subdir: linux-64 - build_number: 0 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 16486180 + timestamp: 1706042692665 +- platform: osx-64 + name: scipy + version: 1.12.0 + category: main + manager: conda + dependencies: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=15 + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - libgfortran5 >=13.2.0 + - liblapack >=3.9.0,<4.0a0 + - numpy >=1.22.4,<1.28 + - numpy >=1.22.4,<2.0a0 + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.12.0-py310hdfaad59_2.conda + hash: + md5: 4dc4fc07864a7ef74802c8ddb61ccb41 + sha256: ce8c4eb1e1285ec284717a060b20c655aa03f29e576c7fa92c941fa06a93ae43 + build: py310hdfaad59_2 + arch: x86_64 + subdir: osx-64 + build_number: 2 license: BSD-3-Clause license_family: BSD - size: 15254417 - timestamp: 1700813355821 + size: 15789417 + timestamp: 1706043347762 - platform: win-64 name: scipy - version: 1.11.4 + version: 1.12.0 category: main manager: conda dependencies: @@ -8776,18 +12320,18 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py310hf667824_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.12.0-py310hf667824_2.conda hash: - md5: b8b12cba10231b68dd802a9b6e262c54 - sha256: 34db915d0815a9368ea950e9d31a30b01e1ba395953295cdd1224a59a7cb5a3e - build: py310hf667824_0 + md5: 0be527d0eed63725972153c089dde27f + sha256: 7dec130815e6d25c4a871a742bb2d49e5fa95fec0189e77ccd0a481c612cf337 + build: py310hf667824_2 arch: x86_64 subdir: win-64 - build_number: 0 + build_number: 2 license: BSD-3-Clause license_family: BSD - size: 14186301 - timestamp: 1700814640256 + size: 15053099 + timestamp: 1706043812068 - platform: linux-64 name: setuptools version: 69.0.3 @@ -8810,6 +12354,28 @@ package: timestamp: 1704224855187 purls: - pkg:pypi/setuptools +- platform: osx-64 + name: setuptools + version: 69.0.3 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.0.3-pyhd8ed1ab_0.conda + hash: + md5: 40695fdfd15a92121ed2922900d0308b + sha256: 0fe2a0473ad03dac6c7f5c42ef36a8e90673c88a0350dfefdea4b08d43803db2 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 470548 + timestamp: 1704224855187 + purls: + - pkg:pypi/setuptools - platform: win-64 name: setuptools version: 69.0.3 @@ -8832,6 +12398,25 @@ package: timestamp: 1704224855187 purls: - pkg:pypi/setuptools +- platform: osx-64 + name: sigtool + version: 0.1.3 + category: main + manager: conda + dependencies: + - openssl >=3.0.0,<4.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2 + hash: + md5: fbfb84b9de9a6939cb165c02c69b1865 + sha256: 46fdeadf8f8d725819c4306838cdfd1099cd8fe3e17bd78862a5dfdcd6de61cf + build: h88f4db0_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 213817 + timestamp: 1643442169866 - platform: linux-64 name: sip version: 6.7.12 @@ -8909,6 +12494,28 @@ package: timestamp: 1620240338595 purls: - pkg:pypi/six +- platform: osx-64 + name: six + version: 1.16.0 + category: main + manager: conda + dependencies: + - python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + build: pyh6c4a22f_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 14259 + timestamp: 1620240338595 + purls: + - pkg:pypi/six - platform: win-64 name: six version: 1.16.0 @@ -8951,6 +12558,25 @@ package: license_family: BSD size: 38865 timestamp: 1678534590321 +- platform: osx-64 + name: snappy + version: 1.1.10 + category: main + manager: conda + dependencies: + - libcxx >=14.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.1.10-h225ccf5_0.conda + hash: + md5: 4320a8781f14cd959689b86e349f3b73 + sha256: 575915dc13152e446a84e2f88de70a14f8b6af1a870e708f9370bd4be105583b + build: h225ccf5_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 34657 + timestamp: 1678534768395 - platform: win-64 name: snappy version: 1.1.10 @@ -8997,6 +12623,31 @@ package: timestamp: 1669632203115 purls: - pkg:pypi/stack-data +- platform: osx-64 + name: stack_data + version: 0.6.2 + category: main + manager: conda + dependencies: + - asttokens + - executing + - pure_eval + - python >=3.5 + url: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda + hash: + md5: e7df0fdd404616638df5ece6e69ba7af + sha256: a58433e75229bec39f3be50c02efbe9b7083e53a1f31d8ee247564f370191eec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 26205 + timestamp: 1669632203115 + purls: + - pkg:pypi/stack-data - platform: win-64 name: stack_data version: 0.6.2 @@ -9042,6 +12693,26 @@ package: license_family: BSD size: 2644060 timestamp: 1702359203835 +- platform: osx-64 + name: svt-av1 + version: 1.8.0 + category: main + manager: conda + dependencies: + - __osx >=10.9 + - libcxx >=16.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/svt-av1-1.8.0-h93d8f39_0.conda + hash: + md5: 5cfb5476c2e9308c77afe3427da3b3b3 + sha256: ce33415f2ffd1643e26a3e464c416a96b68e409f985021f5314efe4f402a8c09 + build: h93d8f39_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-2-Clause + license_family: BSD + size: 2376471 + timestamp: 1702362435425 - platform: win-64 name: svt-av1 version: 1.7.0 @@ -9083,6 +12754,25 @@ package: noarch: generic size: 15277813 timestamp: 1689214980563 +- platform: osx-64 + name: tapi + version: 1100.0.11 + category: main + manager: conda + dependencies: + - libcxx >=10.0.0.a0 + url: https://conda.anaconda.org/conda-forge/osx-64/tapi-1100.0.11-h9ce4665_0.tar.bz2 + hash: + md5: f9ff42ccf809a21ba6f8607f8de36108 + sha256: 34b18ce8d1518b67e333ca1d3af733c3976ecbdf3a36b727f9b4dedddcc588fa + build: h9ce4665_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: NCSA + license_family: MIT + size: 201044 + timestamp: 1602664232074 - platform: win-64 name: tbb version: 2021.11.0 @@ -9093,31 +12783,31 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_0.conda + url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_1.conda hash: - md5: 517c08eba817fb0e56cfd411ed198261 - sha256: aca5b239ed784161ba98809bcf06f67cc46773a09f5b94da8246d982f8d65a49 - build: h91493d7_0 + md5: 21069f3ed16812f9f4f2700667b6ec86 + sha256: aa30c089fdd6f66c7808592362e29963586e094159964a5fb61fb8efa9e349bc + build: h91493d7_1 arch: x86_64 subdir: win-64 - build_number: 0 + build_number: 1 license: Apache-2.0 license_family: APACHE - size: 160300 - timestamp: 1702027823313 + size: 161382 + timestamp: 1706164225098 - platform: linux-64 name: tifffile - version: 2023.12.9 + version: 2024.1.30 category: main manager: conda dependencies: - imagecodecs >=2023.8.12 - numpy >=1.19.2 - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.12.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2024.1.30-pyhd8ed1ab_0.conda hash: - md5: 454bc0aff84f35fa53ba9e0369737a9b - sha256: 4786325cea8790d0b19d52ae575afd640fc8a5000fb75470edb7fcf00647dbbd + md5: 9ae618ad19f5b39955c9f2e43b8d03c3 + sha256: 5315865837d628477bb6f7f3ec5f48d708ad5b4df79ace29e9934e82e13d55ce build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 @@ -9127,23 +12817,49 @@ package: license: BSD-3-Clause license_family: BSD noarch: python - size: 176544 - timestamp: 1702206356203 + size: 176692 + timestamp: 1706606389940 + purls: + - pkg:pypi/tifffile +- platform: osx-64 + name: tifffile + version: 2024.1.30 + category: main + manager: conda + dependencies: + - imagecodecs >=2023.8.12 + - numpy >=1.19.2 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2024.1.30-pyhd8ed1ab_0.conda + hash: + md5: 9ae618ad19f5b39955c9f2e43b8d03c3 + sha256: 5315865837d628477bb6f7f3ec5f48d708ad5b4df79ace29e9934e82e13d55ce + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: + - matplotlib-base >=3.3 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 176692 + timestamp: 1706606389940 purls: - pkg:pypi/tifffile - platform: win-64 name: tifffile - version: 2023.12.9 + version: 2024.1.30 category: main manager: conda dependencies: - imagecodecs >=2023.8.12 - numpy >=1.19.2 - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2023.12.9-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tifffile-2024.1.30-pyhd8ed1ab_0.conda hash: - md5: 454bc0aff84f35fa53ba9e0369737a9b - sha256: 4786325cea8790d0b19d52ae575afd640fc8a5000fb75470edb7fcf00647dbbd + md5: 9ae618ad19f5b39955c9f2e43b8d03c3 + sha256: 5315865837d628477bb6f7f3ec5f48d708ad5b4df79ace29e9934e82e13d55ce build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 @@ -9153,8 +12869,8 @@ package: license: BSD-3-Clause license_family: BSD noarch: python - size: 176544 - timestamp: 1702206356203 + size: 176692 + timestamp: 1706606389940 purls: - pkg:pypi/tifffile - platform: linux-64 @@ -9177,6 +12893,25 @@ package: license_family: BSD size: 3318875 timestamp: 1699202167581 +- platform: osx-64 + name: tk + version: 8.6.13 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + hash: + md5: bf830ba5afc507c6232d4ef0fb1a882d + sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5 + build: h1abcd95_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: TCL + license_family: BSD + size: 3270220 + timestamp: 1699202389792 - platform: win-64 name: tk version: 8.6.13 @@ -9220,6 +12955,28 @@ package: timestamp: 1604308660817 purls: - pkg:pypi/toml +- platform: osx-64 + name: toml + version: 0.10.2 + category: main + manager: conda + dependencies: + - python >=2.7 + url: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2 + hash: + md5: f832c45a477c78bebd107098db465095 + sha256: f0f3d697349d6580e4c2f35ba9ce05c65dc34f9f049e85e45da03800b46139c1 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18433 + timestamp: 1604308660817 + purls: + - pkg:pypi/toml - platform: win-64 name: toml version: 0.10.2 @@ -9264,6 +13021,28 @@ package: timestamp: 1644342331069 purls: - pkg:pypi/tomli +- platform: osx-64 + name: tomli + version: 2.0.1 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2 + hash: + md5: 5844808ffab9ebdb694585b50ba02a96 + sha256: 4cd48aba7cd026d17e86886af48d0d2ebc67ed36f87f6534f4b67138f5a5a58f + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 15940 + timestamp: 1644342331069 + purls: + - pkg:pypi/tomli - platform: win-64 name: tomli version: 2.0.1 @@ -9309,6 +13088,28 @@ package: timestamp: 1695373710038 purls: - pkg:pypi/tornado +- platform: osx-64 + name: tornado + version: 6.3.3 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.3.3-py310h6729b98_1.conda + hash: + md5: 87e772235e713ab972ecdad6c3066ff3 + sha256: 04262bf61f3d36b6607ae233abcbed7edaaf5d6ca4539cf9c1b322bb465809f2 + build: py310h6729b98_1 + arch: x86_64 + subdir: osx-64 + build_number: 1 + license: Apache-2.0 + license_family: Apache + size: 642837 + timestamp: 1695373842662 + purls: + - pkg:pypi/tornado - platform: win-64 name: tornado version: 6.3.3 @@ -9356,6 +13157,28 @@ package: timestamp: 1704213177224 purls: - pkg:pypi/traitlets +- platform: osx-64 + name: traitlets + version: 5.14.1 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.1-pyhd8ed1ab_0.conda + hash: + md5: 1c6acfdc7ecbfe09954c4216da99c146 + sha256: fa78d68f74ec8aae5c93f135140bfdbbf0ab60a79c6062b55d73c316068545ec + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + noarch: python + size: 110329 + timestamp: 1704213177224 + purls: + - pkg:pypi/traitlets - platform: win-64 name: traitlets version: 5.14.1 @@ -9395,7 +13218,31 @@ package: sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c build: pyhd8ed1ab_0 arch: x86_64 - subdir: linux-64 + subdir: linux-64 + build_number: 0 + license: BSD-3-Clause + license_family: OTHER + noarch: python + size: 61018 + timestamp: 1706981358526 +- platform: osx-64 + name: transonic + version: 0.6.1 + category: main + manager: conda + dependencies: + - autopep8 + - beniget ~=0.4.0 + - gast ~=0.5.0 + - numpy + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda + hash: + md5: 54e7b895193629634511d078e7ad7783 + sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 build_number: 0 license: BSD-3-Clause license_family: OTHER @@ -9448,6 +13295,28 @@ package: timestamp: 1702176292645 purls: - pkg:pypi/typing-extensions +- platform: osx-64 + name: typing_extensions + version: 4.9.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.9.0-pyha770c72_0.conda + hash: + md5: a92a6440c3fe7052d63244f3aba2a4a7 + sha256: f3c5be8673bfd905c4665efcb27fa50192f24f84fa8eff2f19cba5d09753d905 + build: pyha770c72_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: PSF-2.0 + license_family: PSF + noarch: python + size: 36058 + timestamp: 1702176292645 + purls: + - pkg:pypi/typing-extensions - platform: win-64 name: typing_extensions version: 4.9.0 @@ -9472,40 +13341,58 @@ package: - pkg:pypi/typing-extensions - platform: linux-64 name: tzdata - version: 2023d + version: 2024a category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda hash: - md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 - sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 build: h0c530f3_0 arch: x86_64 subdir: linux-64 build_number: 0 license: LicenseRef-Public-Domain noarch: generic - size: 119639 - timestamp: 1703250910370 + size: 119815 + timestamp: 1706886945727 +- platform: osx-64 + name: tzdata + version: 2024a + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + hash: + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + build: h0c530f3_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: LicenseRef-Public-Domain + noarch: generic + size: 119815 + timestamp: 1706886945727 - platform: win-64 name: tzdata - version: 2023d + version: 2024a category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2023d-h0c530f3_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda hash: - md5: 8dee24b8be2d9ff81e7bd4d7d97ff1b0 - sha256: 04f2ab3e36f2015841551415bf16bf62933bd94b7085d4be5493b388e95a9c3d + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 build: h0c530f3_0 arch: x86_64 subdir: win-64 build_number: 0 license: LicenseRef-Public-Domain noarch: generic - size: 119639 - timestamp: 1703250910370 + size: 119815 + timestamp: 1706886945727 - platform: win-64 name: ucrt version: 10.0.22621.0 @@ -9549,6 +13436,28 @@ package: timestamp: 1695848183607 purls: - pkg:pypi/unicodedata2 +- platform: osx-64 + name: unicodedata2 + version: 15.1.0 + category: main + manager: conda + dependencies: + - python >=3.10,<3.11.0a0 + - python_abi 3.10.* *_cp310 + url: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-15.1.0-py310h6729b98_0.conda + hash: + md5: 5c82d8c1c3ba3b16df93ac6e7cac60bd + sha256: 72fcdbd9e7b5e853ee7d25f88a54b83b69b6d6ac541f6faae393cc6475aa88be + build: py310h6729b98_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Apache-2.0 + license_family: Apache + size: 366573 + timestamp: 1695848504604 + purls: + - pkg:pypi/unicodedata2 - platform: win-64 name: unicodedata2 version: 15.1.0 @@ -9656,6 +13565,28 @@ package: timestamp: 1704731373922 purls: - pkg:pypi/wcwidth +- platform: osx-64 + name: wcwidth + version: 0.2.13 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda + hash: + md5: 68f0738df502a14213624b288c60c9ad + sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 32709 + timestamp: 1704731373922 + purls: + - pkg:pypi/wcwidth - platform: win-64 name: wcwidth version: 0.2.13 @@ -9700,6 +13631,28 @@ package: timestamp: 1701013309664 purls: - pkg:pypi/wheel +- platform: osx-64 + name: wheel + version: 0.42.0 + category: main + manager: conda + dependencies: + - python >=3.7 + url: https://conda.anaconda.org/conda-forge/noarch/wheel-0.42.0-pyhd8ed1ab_0.conda + hash: + md5: 1cdea58981c5cbc17b51973bcaddcea7 + sha256: 80be0ccc815ce22f80c141013302839b0ed938a2edb50b846cf48d8a8c1cfa01 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 57553 + timestamp: 1701013309664 + purls: + - pkg:pypi/wheel - platform: win-64 name: wheel version: 0.42.0 @@ -9724,94 +13677,140 @@ package: - pkg:pypi/wheel - platform: linux-64 name: xarray - version: 2023.12.0 + version: 2024.1.1 category: main manager: conda dependencies: - - numpy >=1.22 - - packaging >=21.3 - - pandas >=1.4 + - numpy >=1.23 + - packaging >=22 + - pandas >=1.5 - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.12.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.1.1-pyhd8ed1ab_0.conda hash: - md5: e9b31d3ab1b0dd5fd8c24419f6560b90 - sha256: ab89b70aa3d31a9cacf0e91a7c7a6f8cc45d866d71cdcee1219561cff0e8a9a5 + md5: 38b5de3877d1f28089b231d24622dd64 + sha256: f32a6e37ffe85ddf1bdf1b68d519ccbbdfedf5853570017bb45f571ee3bf4b49 build: pyhd8ed1ab_0 arch: x86_64 subdir: linux-64 build_number: 0 constrains: + - pint >=0.19 + - scipy >=1.8 - flox >=0.5 - - hdf5 >=1.12 - - iris >=3.2 - - h5netcdf >=1.0 + - zarr >=2.12 + - sparse >=0.13 + - toolz >=0.12 + - dask-core >=2022.7 + - netcdf4 >=1.6.0 + - cartopy >=0.20 + - bottleneck >=1.3 - h5py >=3.6 + - nc-time-axis >=1.4 + - seaborn >=0.11 + - iris >=3.2 + - hdf5 >=1.12 + - numba >=0.55 - distributed >=2022.7 + - cftime >=1.6 + - matplotlib-base >=3.5 + - h5netcdf >=1.0 + license: Apache-2.0 + license_family: APACHE + noarch: python + size: 730686 + timestamp: 1706057006199 + purls: + - pkg:pypi/xarray +- platform: osx-64 + name: xarray + version: 2024.1.1 + category: main + manager: conda + dependencies: + - numpy >=1.23 + - packaging >=22 + - pandas >=1.5 + - python >=3.9 + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.1.1-pyhd8ed1ab_0.conda + hash: + md5: 38b5de3877d1f28089b231d24622dd64 + sha256: f32a6e37ffe85ddf1bdf1b68d519ccbbdfedf5853570017bb45f571ee3bf4b49 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + constrains: - pint >=0.19 - - nc-time-axis >=1.4 - scipy >=1.8 - - seaborn >=0.11 + - flox >=0.5 + - zarr >=2.12 + - sparse >=0.13 + - toolz >=0.12 - dask-core >=2022.7 - netcdf4 >=1.6.0 - - numba >=0.55 - - bottleneck >=1.3 - cartopy >=0.20 - - sparse >=0.13 - - zarr >=2.12 + - bottleneck >=1.3 + - h5py >=3.6 + - nc-time-axis >=1.4 + - seaborn >=0.11 + - iris >=3.2 + - hdf5 >=1.12 + - numba >=0.55 + - distributed >=2022.7 - cftime >=1.6 - - toolz >=0.12 - matplotlib-base >=3.5 + - h5netcdf >=1.0 license: Apache-2.0 license_family: APACHE noarch: python - size: 724567 - timestamp: 1702073071866 + size: 730686 + timestamp: 1706057006199 purls: - pkg:pypi/xarray - platform: win-64 name: xarray - version: 2023.12.0 + version: 2024.1.1 category: main manager: conda dependencies: - - numpy >=1.22 - - packaging >=21.3 - - pandas >=1.4 + - numpy >=1.23 + - packaging >=22 + - pandas >=1.5 - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/xarray-2023.12.0-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/xarray-2024.1.1-pyhd8ed1ab_0.conda hash: - md5: e9b31d3ab1b0dd5fd8c24419f6560b90 - sha256: ab89b70aa3d31a9cacf0e91a7c7a6f8cc45d866d71cdcee1219561cff0e8a9a5 + md5: 38b5de3877d1f28089b231d24622dd64 + sha256: f32a6e37ffe85ddf1bdf1b68d519ccbbdfedf5853570017bb45f571ee3bf4b49 build: pyhd8ed1ab_0 arch: x86_64 subdir: win-64 build_number: 0 constrains: - - flox >=0.5 - - hdf5 >=1.12 - - iris >=3.2 - - h5netcdf >=1.0 - - h5py >=3.6 - - distributed >=2022.7 - pint >=0.19 - - nc-time-axis >=1.4 - scipy >=1.8 - - seaborn >=0.11 + - flox >=0.5 + - zarr >=2.12 + - sparse >=0.13 + - toolz >=0.12 - dask-core >=2022.7 - netcdf4 >=1.6.0 - - numba >=0.55 - - bottleneck >=1.3 - cartopy >=0.20 - - sparse >=0.13 - - zarr >=2.12 + - bottleneck >=1.3 + - h5py >=3.6 + - nc-time-axis >=1.4 + - seaborn >=0.11 + - iris >=3.2 + - hdf5 >=1.12 + - numba >=0.55 + - distributed >=2022.7 - cftime >=1.6 - - toolz >=0.12 - matplotlib-base >=3.5 + - h5netcdf >=1.0 license: Apache-2.0 license_family: APACHE noarch: python - size: 724567 - timestamp: 1702073071866 + size: 730686 + timestamp: 1706057006199 purls: - pkg:pypi/xarray - platform: linux-64 @@ -10038,6 +14037,24 @@ package: license_family: MIT size: 14468 timestamp: 1684637984591 +- platform: osx-64 + name: xorg-libxau + version: 1.0.11 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.11-h0dc2134_0.conda + hash: + md5: 9566b4c29274125b0266d0177b5eb97b + sha256: 8a2e398c4f06f10c64e69f56bcf3ddfa30b432201446a0893505e735b346619a + build: h0dc2134_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 13071 + timestamp: 1684638167647 - platform: win-64 name: xorg-libxau version: 1.0.11 @@ -10077,6 +14094,24 @@ package: license_family: MIT size: 19126 timestamp: 1610071769228 +- platform: osx-64 + name: xorg-libxdmcp + version: 1.1.3 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2 + hash: + md5: 86ac76d6bf1cbb9621943eb3bd9ae36e + sha256: 485421c16f03a01b8ed09984e0b2ababdbb3527e1abf354ff7646f8329be905f + build: h35c211d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + size: 17225 + timestamp: 1610071995461 - platform: win-64 name: xorg-libxdmcp version: 1.1.3 @@ -10232,6 +14267,23 @@ package: license: LGPL-2.1 and GPL-2.0 size: 418368 timestamp: 1660346797927 +- platform: osx-64 + name: xz + version: 5.2.6 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + hash: + md5: a72f9d4ea13d55d745ff1ed594747f10 + sha256: eb09823f34cc2dd663c0ec4ab13f246f45dcd52e5b8c47b9864361de5204a1c8 + build: h775f41a_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: LGPL-2.1 and GPL-2.0 + size: 238119 + timestamp: 1660346964847 - platform: win-64 name: xz version: 5.2.6 @@ -10272,6 +14324,26 @@ package: license_family: BSD size: 278045 timestamp: 1702765714384 +- platform: osx-64 + name: zfp + version: 1.0.1 + category: main + manager: conda + dependencies: + - libcxx >=15 + - llvm-openmp >=16.0.6 + url: https://conda.anaconda.org/conda-forge/osx-64/zfp-1.0.1-h295e98d_0.conda + hash: + md5: 24914bd3df9683b6f3971f7aa4844920 + sha256: 762661fd097fa03d64e816870d9d46fa4aaafa4a502ce0fdccf2eae9d167898c + build: h295e98d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 215707 + timestamp: 1702765897536 - platform: win-64 name: zfp version: 1.0.1 @@ -10315,6 +14387,28 @@ package: timestamp: 1695255262261 purls: - pkg:pypi/zipp +- platform: osx-64 + name: zipp + version: 3.17.0 + category: main + manager: conda + dependencies: + - python >=3.8 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.17.0-pyhd8ed1ab_0.conda + hash: + md5: 2e4d6bc0b14e10f895fc6791a7d9b26a + sha256: bced1423fdbf77bca0a735187d05d9b9812d2163f60ab426fc10f11f92ecbe26 + build: pyhd8ed1ab_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: MIT + license_family: MIT + noarch: python + size: 18954 + timestamp: 1695255262261 + purls: + - pkg:pypi/zipp - platform: win-64 name: zipp version: 3.17.0 @@ -10376,6 +14470,24 @@ package: license_family: Other size: 94553 timestamp: 1679094841423 +- platform: osx-64 + name: zlib-ng + version: 2.0.7 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.0.7-hb7f2c08_0.conda + hash: + md5: 813b5ad3ba92b75b84f40602b6d34ffb + sha256: 701bf17f3e22c7ba24ca547ccf4b2b5b4b58eda579ddaf68c0571427b10aa366 + build: hb7f2c08_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: Zlib + license_family: Other + size: 93171 + timestamp: 1679095009343 - platform: win-64 name: zlib-ng version: 2.0.7 @@ -10418,6 +14530,25 @@ package: license_family: BSD size: 545199 timestamp: 1693151163452 +- platform: osx-64 + name: zstd + version: 1.5.5 + category: main + manager: conda + dependencies: + - libzlib >=1.2.13,<1.3.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda + hash: + md5: 80abc41d0c48b82fe0f04e7f42f5cb7e + sha256: d54e31d3d8de5e254c0804abd984807b8ae5cd3708d758a8bf1adff1f5df166c + build: h829000d_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD-3-Clause + license_family: BSD + size: 499383 + timestamp: 1693151312586 - platform: win-64 name: zstd version: 1.5.5 diff --git a/pixi.toml b/pixi.toml index bcf3411..3da865e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -7,7 +7,7 @@ [project] name = "fluidsim" channels = ["conda-forge"] -platforms = ["linux-64", "win-64"] +platforms = ["linux-64", "win-64", "osx-64"] [tasks] # use as `pixi run install-editable` @@ -36,11 +36,13 @@ ipython = ">=8.20.0" coverage = ">=7.4.0" pytest-cov = ">=4.1.0" pytest-mock = ">=3.12.0" -fluidfft = ">=0.2.9" -mpi4py = ">=3.1.5" ninja = ">=1.11.1,<1.12" meson = ">=1.3.1,<1.4" meson-python = ">=0.15.0,<0.16" +cython = ">=3.0.8,<3.1" +fftw = ">=3.3.10,<3.4" +pkg-config = ">=0.29.2,<0.30" +pyfftw = ">=0.13.1,<0.14" [pypi-dependencies] pymech = "*" diff --git a/plugins/fluidfft-fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/meson.build index 9e8f180..f278bba 100644 --- a/plugins/fluidfft-fftwmpi/meson.build +++ b/plugins/fluidfft-fftwmpi/meson.build @@ -17,7 +17,7 @@ mpi_dep = dependency('mpi', language: 'cpp') # fftwmpi_dep = dependency('fftw3-mpi', static: false) compiler = meson.get_compiler('cpp') -fftwmpi_dep = compiler.find_library('libfftw_mpi', required: true) +fftwmpi_dep = compiler.find_library('fftw_mpi', required: true) py_mod = import('python') py = py_mod.find_installation('python3', pure: false) From 4099b72fd21c96346e69e5ead583e5fb8673a50c Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 06:31:57 +0100 Subject: [PATCH 30/36] Fix doc --- .gitlab-ci.yml | 2 - .readthedocs.yml | 4 +- Makefile | 7 +- doc/conf.py | 6 - noxfile.py | 7 +- pdm.lock | 24 ++-- pixi.lock | 104 +++++++++--------- plugins/README.md | 13 +-- .../fluidfft_builder/__init__.py | 5 + .../create_fake_mod_for_doc.py | 44 +++++--- pyproject.toml | 12 +- src/fluidfft/fft2d/__init__.py | 13 +-- src/fluidfft/fft2d/meson.build | 5 + src/fluidfft/fft3d/__init__.py | 17 +-- src/fluidfft/fft3d/meson.build | 5 + 15 files changed, 131 insertions(+), 137 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 83ab3a6..eb3ccc0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -105,8 +105,6 @@ pages: needs: - job: "image:build" optional: true - variables: - FLUIDFFT_TRANSONIC_BACKEND: "python" script: - nox -s doc - mkdir -p public/$CI_COMMIT_REF_NAME diff --git a/.readthedocs.yml b/.readthedocs.yml index 5e0a42b..f7b43c6 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -15,8 +15,8 @@ build: post_install: - pdm use -f $READTHEDOCS_VIRTUALENV_PATH - pdm sync -G doc --no-self - - pdm run pip install plugins/fluidfft-pyfftw - - FLUIDFFT_TRANSONIC_BACKEND="python" pip install . -v --no-deps + - pdm run python -c "from fluidfft_builder import create_fake_modules as c; c()" + - pdm run pip install . --no-deps -C setup-args=-Dtransonic-backend=python sphinx: configuration: doc/conf.py \ No newline at end of file diff --git a/Makefile b/Makefile index 64a96ef..1290196 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ -.PHONY: clean cleanall develop build_ext_inplace list-sessions tests +.PHONY: clean cleanall develop list-sessions tests doc develop: sync + pdm run python -c "from fluidfft_builder import create_fake_modules as c; c()" pdm run pip install -e . --no-deps --no-build-isolation -v pdm run pip install -e plugins/fluidfft-fftw --no-build-isolation -v @@ -12,7 +13,6 @@ develop_fftwmpi: sync: pdm sync --clean --no-self - pdm run pip install -e plugins/fluidfft-builder clean: rm -rf build @@ -64,6 +64,9 @@ list-sessions: lock: pdm lock -G :all +doc: + nox -s doc + # Catch-all target: route all unknown targets to nox sessions %: @nox --version 2>/dev/null || pip install nox diff --git a/doc/conf.py b/doc/conf.py index 7672024..5a3207d 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -15,7 +15,6 @@ import os from pathlib import Path import subprocess -from runpy import run_path import getpass from subprocess import call @@ -94,11 +93,6 @@ def save_fig_scaling(dir_name, dim, n0, n1, n2=None): except OSError: print("Can not find doxygen to generate the documentation of the cpp code.") -run_path( - "../plugins/fluidfft-builder/fluidfft_builder/src_cy/create_fake_mod_for_doc.py" -) - - # -- General configuration ---------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. diff --git a/noxfile.py b/noxfile.py index 7f2960d..34164ab 100644 --- a/noxfile.py +++ b/noxfile.py @@ -109,12 +109,11 @@ def run_command(command, **kwargs): @nox.session def doc(session): - session.run_always("pdm", "sync", "-G", "doc", "--no-self", external=True) + session.run_always("pdm", "sync", "--clean", "-G", "doc", "--no-self", external=True) + session.run_always("python", "-c", "from fluidfft_builder import create_fake_modules as c; c()") session.install( - ".", "--no-deps", "--config-settings=setup-args=-Dtransonic-backend=python" + ".", "--no-deps", "-C", "setup-args=-Dtransonic-backend=python" ) - session.install("-e", "plugins/fluidfft-pyfftw") - session.chdir("doc") session.run("make", "cleanall", external=True) session.run("make", external=True) diff --git a/pdm.lock b/pdm.lock index dccc91e..6c00013 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "build", "dask", "dev", "doc", "lint", "mpi", "pyfftw", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:6a061f9f4ec1babd4a79558e7328bc622610dd996a37f27754876441f84f9e20" +content_hash = "sha256:57e808ead91d9ff56f1c42dbbd7712ab06f3763884657d0c1f3fa21b956e7ff0" [[package]] name = "alabaster" @@ -110,7 +110,7 @@ files = [ [[package]] name = "astroid" -version = "3.0.2" +version = "3.0.3" requires_python = ">=3.8.0" summary = "An abstract syntax tree for Python with inference support." groups = ["lint"] @@ -118,8 +118,8 @@ dependencies = [ "typing-extensions>=4.0.0; python_version < \"3.11\"", ] files = [ - {file = "astroid-3.0.2-py3-none-any.whl", hash = "sha256:d6e62862355f60e716164082d6b4b041d38e2a8cf1c7cd953ded5108bac8ff5c"}, - {file = "astroid-3.0.2.tar.gz", hash = "sha256:4a61cf0a59097c7bb52689b0fd63717cd2a8a14dc9f1eee97b82d814881c8c91"}, + {file = "astroid-3.0.3-py3-none-any.whl", hash = "sha256:92fcf218b89f449cdf9f7b39a269f8d5d617b27be68434912e11e79203963a17"}, + {file = "astroid-3.0.3.tar.gz", hash = "sha256:4148645659b08b70d72460ed1921158027a9e53ae8b7234149b1400eddacbb93"}, ] [[package]] @@ -823,6 +823,14 @@ files = [ {file = "fluiddyn-0.5.3.tar.gz", hash = "sha256:75a3f9640716a686a87337c615ecd6b9dc88f8dd797f407863e3a995645f0513"}, ] +[[package]] +name = "fluidfft-builder" +version = "0.0.1" +editable = true +path = "./plugins/fluidfft-builder" +summary = "Fluidfft plugin dependencies" +groups = ["doc", "test"] + [[package]] name = "fonttools" version = "4.47.2" @@ -879,13 +887,13 @@ files = [ [[package]] name = "fsspec" -version = "2023.12.2" +version = "2024.2.0" requires_python = ">=3.8" summary = "File-system specification" groups = ["dask"] files = [ - {file = "fsspec-2023.12.2-py3-none-any.whl", hash = "sha256:d800d87f72189a745fa3d6b033b9dc4a34ad069f60ca60b943a63599f5501960"}, - {file = "fsspec-2023.12.2.tar.gz", hash = "sha256:8548d39e8810b59c38014934f6b31e57f40c1b20f911f4cc2b85389c7e9bf0cb"}, + {file = "fsspec-2024.2.0-py3-none-any.whl", hash = "sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8"}, + {file = "fsspec-2024.2.0.tar.gz", hash = "sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84"}, ] [[package]] @@ -2262,7 +2270,7 @@ name = "pip" version = "24.0" requires_python = ">=3.7" summary = "The PyPA recommended tool for installing Python packages." -groups = ["dev"] +groups = ["test"] files = [ {file = "pip-24.0-py3-none-any.whl", hash = "sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc"}, {file = "pip-24.0.tar.gz", hash = "sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2"}, diff --git a/pixi.lock b/pixi.lock index 2aef49a..2c3efc6 100644 --- a/pixi.lock +++ b/pixi.lock @@ -7238,7 +7238,7 @@ package: timestamp: 1701352639132 - platform: linux-64 name: libxml2 - version: 2.12.4 + version: 2.12.5 category: main manager: conda dependencies: @@ -7247,21 +7247,21 @@ package: - libiconv >=1.17,<2.0a0 - libzlib >=1.2.13,<1.3.0a0 - xz >=5.2.6,<6.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.4-h232c23b_1.conda + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.5-h232c23b_0.conda hash: - md5: 53e951fab78d7e3bab40745f7b3d1620 - sha256: f6828b44da29bbfbf367ddbc72902e84ea5f5de933be494d6aac4a35826afed0 - build: h232c23b_1 + md5: c442ebfda7a475f5e78f1c8e45f1e919 + sha256: db9bf97e9e367985204331b58a059ebd5a4e0cb9e1c8754e9ecb23046b7b7bc1 + build: h232c23b_0 arch: x86_64 subdir: linux-64 - build_number: 1 + build_number: 0 license: MIT license_family: MIT - size: 704907 - timestamp: 1705355040145 + size: 704829 + timestamp: 1707084502281 - platform: osx-64 name: libxml2 - version: 2.12.4 + version: 2.12.5 category: main manager: conda dependencies: @@ -7269,21 +7269,21 @@ package: - libiconv >=1.17,<2.0a0 - libzlib >=1.2.13,<1.3.0a0 - xz >=5.2.6,<6.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.4-hc0ae0f7_1.conda + url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.5-hc0ae0f7_0.conda hash: - md5: 6ffac7334d3c1672845bc4b2a9e39835 - sha256: edccf142e32ee5c6619aebf36c29acdb942bde32fc0585882f5848d86b3e5acd - build: hc0ae0f7_1 + md5: abe27e7ab68b95e8d0e41cd5018ec8ae + sha256: a84f355dcf9039ae54e21bf8833c16200f848fd333a5e68c143e142cc55dc07d + build: hc0ae0f7_0 arch: x86_64 subdir: osx-64 - build_number: 1 + build_number: 0 license: MIT license_family: MIT - size: 619880 - timestamp: 1705355303675 + size: 619351 + timestamp: 1707084558935 - platform: win-64 name: libxml2 - version: 2.12.4 + version: 2.12.5 category: main manager: conda dependencies: @@ -7292,18 +7292,18 @@ package: - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 - url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.4-hc3477c8_1.conda + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.5-hc3477c8_0.conda hash: - md5: bc7291fa70257ccf420b564c870a53b2 - sha256: b3aa51adb9fb9413227cedc0ce7c5d9f9cf99940911cca3da117e940a8b778ce - build: hc3477c8_1 + md5: d8c3c1c8242db352f38cd1dc0bf44f77 + sha256: 15696b049911b3ea5d37672408e500fb27e375d865f8cceac9cb02f9349e6804 + build: hc3477c8_0 arch: x86_64 subdir: win-64 - build_number: 1 + build_number: 0 license: MIT license_family: MIT - size: 1570461 - timestamp: 1705355510142 + size: 1567894 + timestamp: 1707084720091 - platform: linux-64 name: libzlib version: 1.2.13 @@ -13212,19 +13212,19 @@ package: - gast ~=0.5.0 - numpy - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_1.conda hash: - md5: 54e7b895193629634511d078e7ad7783 - sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c - build: pyhd8ed1ab_0 + md5: 0b81f587f958d2a9876359aa2bb24f19 + sha256: bdfac27c09a3d0941d689c1bd58a781276ce53f44aab030f2563aafafadf4904 + build: pyhd8ed1ab_1 arch: x86_64 subdir: linux-64 - build_number: 0 + build_number: 1 license: BSD-3-Clause license_family: OTHER noarch: python - size: 61018 - timestamp: 1706981358526 + size: 60590 + timestamp: 1707111461010 - platform: osx-64 name: transonic version: 0.6.1 @@ -13236,19 +13236,19 @@ package: - gast ~=0.5.0 - numpy - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_1.conda hash: - md5: 54e7b895193629634511d078e7ad7783 - sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c - build: pyhd8ed1ab_0 + md5: 0b81f587f958d2a9876359aa2bb24f19 + sha256: bdfac27c09a3d0941d689c1bd58a781276ce53f44aab030f2563aafafadf4904 + build: pyhd8ed1ab_1 arch: x86_64 subdir: osx-64 - build_number: 0 + build_number: 1 license: BSD-3-Clause license_family: OTHER noarch: python - size: 61018 - timestamp: 1706981358526 + size: 60590 + timestamp: 1707111461010 - platform: win-64 name: transonic version: 0.6.1 @@ -13260,19 +13260,19 @@ package: - gast ~=0.5.0 - numpy - python >=3.9 - url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_0.conda + url: https://conda.anaconda.org/conda-forge/noarch/transonic-0.6.1-pyhd8ed1ab_1.conda hash: - md5: 54e7b895193629634511d078e7ad7783 - sha256: 01d7d8e74fcbaaf6c762f97e7f1c846210006f91d0cfc4e0a4eb77c18313f76c - build: pyhd8ed1ab_0 + md5: 0b81f587f958d2a9876359aa2bb24f19 + sha256: bdfac27c09a3d0941d689c1bd58a781276ce53f44aab030f2563aafafadf4904 + build: pyhd8ed1ab_1 arch: x86_64 subdir: win-64 - build_number: 0 + build_number: 1 license: BSD-3-Clause license_family: OTHER noarch: python - size: 61018 - timestamp: 1706981358526 + size: 60590 + timestamp: 1707111461010 - platform: linux-64 name: typing_extensions version: 4.9.0 @@ -13918,24 +13918,24 @@ package: timestamp: 1684679248466 - platform: linux-64 name: xkeyboard-config - version: '2.40' + version: '2.41' category: main manager: conda dependencies: - libgcc-ng >=12 - - xorg-libx11 >=1.8.6,<2.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.40-hd590300_0.conda + - xorg-libx11 >=1.8.7,<2.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.41-hd590300_0.conda hash: - md5: 07c15d846a2e4d673da22cbd85fdb6d2 - sha256: a01fcb9c3346ee08aa24b3900a08896f2e8f80c891378a57d71764e16bbd6141 + md5: 81f740407b45e3f9047b3174fa94eb9e + sha256: 56955610c0747ea7cb026bb8aa9ef165ff41d616e89894538173b8b7dd2ee49a build: hd590300_0 arch: x86_64 subdir: linux-64 build_number: 0 license: MIT license_family: MIT - size: 895713 - timestamp: 1696647097478 + size: 898045 + timestamp: 1707104384997 - platform: linux-64 name: xorg-kbproto version: 1.0.7 diff --git a/plugins/README.md b/plugins/README.md index 9038375..0f70039 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -6,16 +6,9 @@ Directory containing the plugins, i.e. Python packages declaring the We should have - [x] fluidfft-mpi4pyfft (cannot be tested because mpi4py-fft installation fails) -- [ ] fluidfft-fftw -- [ ] fluidfft-mpi_with_fftw -- [ ] fluidfft-fftwmpi +- [x] fluidfft-fftw +- [x] fluidfft-mpi_with_fftw +- [x] fluidfft-fftwmpi - [ ] fluidfft-p3dfft - [ ] fluidfft-pfft - [ ] fluidfft-pyvkfft (https://pyvkfft.readthedocs.io) - -Currently, we have only one tested plugin (fluidfft-pyfftw), which was written to -design and test the plugin machinery. However, I (PA) think that this (pure Python) -code will have to go back in fluidfft. Pyfftw can just be an optional dependency -for fluidfft. - -TODO: When we have other plugins, move back the code using pyfftw inside fluidfft. diff --git a/plugins/fluidfft-builder/fluidfft_builder/__init__.py b/plugins/fluidfft-builder/fluidfft_builder/__init__.py index c8bbe5c..7d39d4d 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/__init__.py +++ b/plugins/fluidfft-builder/fluidfft_builder/__init__.py @@ -1,5 +1,7 @@ from pathlib import Path +from .create_fake_mod_for_doc import create_fake_modules + def print_include_dir(): src_cpp = Path(__file__).absolute().parent / "src_cpp" @@ -9,3 +11,6 @@ def print_include_dir(): def print_include_dir_cython(): include_cy = Path(__file__).absolute().parent / "include_cy" print(include_cy) + + +__all__ = ["create_fake_modules", "print_include_dir", "print_include_dir_cython"] diff --git a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py index dc364a6..181484a 100644 --- a/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py +++ b/plugins/fluidfft-builder/fluidfft_builder/create_fake_mod_for_doc.py @@ -1,9 +1,10 @@ -import os +from importlib import resources +from pathlib import Path -here = os.path.abspath(os.path.split(__file__)[0]) +here = Path(__file__).absolute().parent -def get_doc(lines, indent=" "): +def get_docstring(lines, indent=" "): doc = None # find start doc @@ -59,7 +60,7 @@ def get_function_code(lines): indent = " " * 8 - doc = get_doc(lines_to_be_parsed, indent=indent) + doc = get_docstring(lines_to_be_parsed, indent=indent) if doc is None: doc = indent + "pass" @@ -70,10 +71,10 @@ def get_function_code(lines): def create_fake_mod(dimension): - with open( - os.path.join(here, "template{dim}d.pyx".format(dim=dimension)), "r" - ) as f: - lines_text = f.read().splitlines() + resource = resources.files("fluidfft_builder.templates") + with resources.as_file((resource / f"template{dimension}d.pyx")) as path: + with open(path, encoding="utf8") as file: + lines_text = file.read().splitlines() # find start class for i, line in enumerate(lines_text): @@ -81,8 +82,7 @@ def create_fake_mod(dimension): lines_class = lines_text[i + 1 :] break - # get docstring of the class - doc_class = get_doc(lines_class) + docstring_class = get_docstring(lines_class) lines_function_class = lines_class[1:] @@ -95,18 +95,26 @@ def create_fake_mod(dimension): functions_codes.append(get_function_code(lines_function_class[i:])) code = ( - "class FFT{dim}dFakeForDoc(object):\n".format(dim=dimension) - + doc_class + f"class FFT{dimension}dFakeForDoc(object):\n" + + docstring_class + "\n\n" + "\n\n".join(functions_codes) + "\n" ) - name = ( - "../../../../src/fluidfft/fft{dim}d/fake_mod_fft{dim}d_for_doc.py".format( - dim=dimension - ) + path_out = here / ( + f"../../../src/fluidfft/fft{dimension}d/" + f"fake_mod_fft{dimension}d_for_doc.py" ) - with open(os.path.join(here, name), "w") as f: - f.write(code) + if path_out.exists(): + old_text = path_out.read_text() + if old_text == code: + return + + path_out.write_text(code, encoding="utf8") + + +def create_fake_modules(): + for dimension in "23": + create_fake_mod(dimension) diff --git a/pyproject.toml b/pyproject.toml index 806dd01..441f731 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,20 +68,16 @@ package-dir = "src" [tool.pdm.dev-dependencies] build = ["meson-python", "ninja", "numpy", "transonic>=0.6.0", "pythran>=0.9.7"] -# plugins = [ -# "-e fluidfft-mpi4pyfft @ file:///${PROJECT_ROOT}/plugins/fluidfft-mpi4pyfft", -# ] - test = [ "pytest", "coverage", "pytest-cov", "cython", # needed at run time for coverage -] -dev = [ + # needed to build the plugins "pip", - "ipython", + "-e fluidfft-builder @ file:///${PROJECT_ROOT}/plugins/fluidfft-builder", ] +dev = ["ipython"] doc = [ "sphinx", "sphinx_copybutton", @@ -91,6 +87,8 @@ doc = [ "numpydoc", "pandas", "pyfftw", + # needed to create the dummy modules + "-e fluidfft-builder @ file:///${PROJECT_ROOT}/plugins/fluidfft-builder", ] lint = ["black", "pylint"] diff --git a/src/fluidfft/fft2d/__init__.py b/src/fluidfft/fft2d/__init__.py index 088993f..ceac080 100644 --- a/src/fluidfft/fft2d/__init__.py +++ b/src/fluidfft/fft2d/__init__.py @@ -2,14 +2,7 @@ ============================================================ This package contains extension modules containing classes for performing Fast -Fourier Transform with different methods and libraries. The number of classes -depend on how fluidfft has been compiled. The 2d classes currently implemented -are: - -- :class:`fluidfft.fft2d.with_fftw1d.FFT2DWithFFTW1D` -- :class:`fluidfft.fft2d.with_fftw2d.FFT2DWithFFTW2D` -- :class:`fluidfft.fft2d.mpi_with_fftwmpi2d.FFT2DMPIWithFFTW1D` -- :class:`fluidfft.fft2d.mpi_with_fftwmpi2d.FFT2DMPIWithFFTWMPI2D` +Fourier Transform with different methods and libraries. To use the FFT classes in real codes, it is simpler and recommended to use the class :class:`fluidfft.fft2d.operators.OperatorsPseudoSpectral2D` defined in @@ -41,10 +34,8 @@ class :class:`fluidfft.fft2d.operators.OperatorsPseudoSpectral2D` defined in "get_classes_mpi", ] -try: +if "sphinx" in sys.modules: from .fake_mod_fft2d_for_doc import FFT2dFakeForDoc -except ImportError: - pass def get_classes_seq(): diff --git a/src/fluidfft/fft2d/meson.build b/src/fluidfft/fft2d/meson.build index 6736548..610b490 100644 --- a/src/fluidfft/fft2d/meson.build +++ b/src/fluidfft/fft2d/meson.build @@ -6,6 +6,11 @@ python_sources = [ 'testing.py', ] +fs = import('fs') +if fs.is_file('fake_mod_fft2d_for_doc.py') + python_sources += ['fake_mod_fft2d_for_doc.py'] +endif + py.install_sources( python_sources, subdir: 'fluidfft/fft2d' diff --git a/src/fluidfft/fft3d/__init__.py b/src/fluidfft/fft3d/__init__.py index fa61786..cafade1 100644 --- a/src/fluidfft/fft3d/__init__.py +++ b/src/fluidfft/fft3d/__init__.py @@ -2,18 +2,7 @@ ============================================================ This package contains extension modules containing classes for performing Fast -Fourier Transform with different methods and libraries. The number of classes -depend on how fluidfft has been compiled. The 3d classes currently implemented -are: - -- :class:`fluidfft3d.with_fftw3d.FFT3DWithFFTW3D` -- :class:`fluidfft3d.with_cufft.FFT3DWithCUFFT` -- :class:`fluidfft3d.mpi_with_fftwmpi3d.FFT3DMPIWithFFTWMPI3D` -- :class:`fluidfft3d.mpi_with_fftwmpi3d.FFT3DMPIWithFFTW1D` -- :class:`fluidfft3d.mpi_with_pfft.FFT3DMPIWithPFFT` -- :class:`fluidfft3d.mpi_with_p3dfft.FFT3DMPIWithP3DFFT` -- :class:`fluidfft3d.mpi_with_mpi4pyfft.FFT3DMPIWithMPI4PYFFT` -- :class:`fluidfft3d.mpi_with_mpi4pyfft_slab.FFT3DMPIWithMPI4PYFFTSlab` +Fourier Transform with different methods and libraries. To use the FFT classes in real codes, it is simpler and recommended to use the class :class:`fluidfft.fft3d.operators.OperatorsPseudoSpectral3D` defined in @@ -45,10 +34,8 @@ class :class:`fluidfft.fft3d.operators.OperatorsPseudoSpectral3D` defined in "get_classes_mpi", ] -try: +if "sphinx" in sys.modules: from .fake_mod_fft3d_for_doc import FFT3dFakeForDoc -except ImportError: - pass def get_classes_seq(): diff --git a/src/fluidfft/fft3d/meson.build b/src/fluidfft/fft3d/meson.build index cf93d66..b61d81a 100644 --- a/src/fluidfft/fft3d/meson.build +++ b/src/fluidfft/fft3d/meson.build @@ -6,6 +6,11 @@ python_sources = [ 'with_pyfftw.py', ] +fs = import('fs') +if fs.is_file('fake_mod_fft3d_for_doc.py') + python_sources += ['fake_mod_fft3d_for_doc.py'] +endif + py.install_sources( python_sources, subdir: 'fluidfft/fft3d' From cb319b2455fd2bc23120f25d72deeca7def64c2e Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 08:40:57 +0100 Subject: [PATCH 31/36] More CI Pixi --- .github/workflows/ci-pixi.yml | 14 +- pixi.lock | 644 +++++++++++++++++++++++----------- pixi.toml | 1 + 3 files changed, 446 insertions(+), 213 deletions(-) diff --git a/.github/workflows/ci-pixi.yml b/.github/workflows/ci-pixi.yml index 86f1dae..fe7008f 100644 --- a/.github/workflows/ci-pixi.yml +++ b/.github/workflows/ci-pixi.yml @@ -10,10 +10,8 @@ jobs: strategy: fail-fast: false matrix: - # os: ["windows-2022", "macos-latest"] - # python-version: ["3.9", "3.10", "3.11"] - os: ["windows-2022"] - python-version: ["3.10"] + os: ["windows-2022", "macos-latest"] + python-version: ["3.9", "3.10", "3.11"] defaults: run: shell: bash -l {0} @@ -27,11 +25,7 @@ jobs: run: | pixi run install-editable pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps - - name: Show meson-log.txt - if: always() - run: | - cat build/cp310/meson-logs/meson-log.txt - cat 'D:\a\fluidfft\fluidfft\.pixi\env\Scripts\transonic-get-include' - name: Tests run: | - pixi run pytest -v tests plugins/fluidfft-fftw + pixi run pytest -v tests + pixi run pytest -v plugins/fluidfft-fftw diff --git a/pixi.lock b/pixi.lock index 2c3efc6..350e525 100644 --- a/pixi.lock +++ b/pixi.lock @@ -433,6 +433,25 @@ package: timestamp: 1627922710217 purls: - pkg:pypi/beniget +- platform: linux-64 + name: binutils + version: '2.40' + category: main + manager: conda + dependencies: + - binutils_impl_linux-64 >=2.40,<2.41.0a0 + url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-hdd6e379_0.conda + hash: + md5: ccc940fddbc3fcd3d79cd4c654c4b5c4 + sha256: 35f3b042f295fd7387de11cf426ca8ee5257e5c98b88560c6c5ad4ef3c85d38c + build: hdd6e379_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: GPL-3.0-only + license_family: GPL + size: 30469 + timestamp: 1674833987166 - platform: linux-64 name: binutils_impl_linux-64 version: '2.40' @@ -881,6 +900,47 @@ package: license_family: BSD size: 209496 timestamp: 1706187677719 +- platform: linux-64 + name: c-compiler + version: 1.7.0 + category: main + manager: conda + dependencies: + - binutils + - gcc + - gcc_linux-64 12.* + url: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_0.conda + hash: + md5: fad1d0a651bf929c6c16fbf1f6ccfa7c + sha256: 19343f6cdefd0a2e36c4f0da81ed9ea964e5b4e82a2304809afd8f151bf2ac8c + build: hd590300_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD + size: 6287 + timestamp: 1701505302633 +- platform: osx-64 + name: c-compiler + version: 1.7.0 + category: main + manager: conda + dependencies: + - cctools >=949.0.1 + - clang_osx-64 16.* + - ld64 >=530 + - llvm-openmp + url: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.7.0-h282daa2_0.conda + hash: + md5: 4652f33fe8d895f61177e2783b289377 + sha256: c32fdb29dac5e1a01aa486aba1f7b21cff5c1c7748c0cf9b6c9475888b61eb17 + build: h282daa2_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD + size: 6409 + timestamp: 1701505468495 - platform: linux-64 name: ca-certificates version: 2024.2.2 @@ -1092,6 +1152,27 @@ package: license: LGPL-2.1-only or MPL-1.1 size: 982351 timestamp: 1697028423052 +- platform: osx-64 + name: cctools + version: 973.0.1 + category: main + manager: conda + dependencies: + - cctools_osx-64 973.0.1 ha1c5b94_16 + - ld64 609 ha02d983_16 + - libllvm16 >=16.0.6,<16.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/cctools-973.0.1-h40f6528_16.conda + hash: + md5: b7234c329d4503600b032f168f4b65e7 + sha256: ef3afa0ca2e159360575d5de6cba102494d2dd03c0fda77e858ae9fba73b9e61 + build: h40f6528_16 + arch: x86_64 + subdir: osx-64 + build_number: 16 + license: APSL-2.0 + license_family: Other + size: 22144 + timestamp: 1706798167450 - platform: osx-64 name: cctools_osx-64 version: 973.0.1 @@ -1100,25 +1181,25 @@ package: dependencies: - ld64_osx-64 >=609,<610.0a0 - libcxx - - libllvm17 >=17.0.6,<17.1.0a0 + - libllvm16 >=16.0.6,<16.1.0a0 - libzlib >=1.2.13,<1.3.0a0 - sigtool - url: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-973.0.1-h031c385_16.conda + url: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-973.0.1-ha1c5b94_16.conda hash: - md5: ab815048866f8844132db12a1b5bc18d - sha256: 91c3d1cfe8a485aeb53767d8a7cf685a4d4ffb603741957175271722916d1ba5 - build: h031c385_16 + md5: 00eb71204323fa6449b38dd34ab9c65d + sha256: aa69f18388246169ac603148501bdd507bf935e97f384cf8f78ef94e3b296158 + build: ha1c5b94_16 arch: x86_64 subdir: osx-64 build_number: 16 constrains: - cctools 973.0.1.* - - clang 17.0.* + - clang 16.0.* - ld64 609.* license: APSL-2.0 license_family: Other - size: 1100288 - timestamp: 1706797898287 + size: 1116102 + timestamp: 1706798100072 - platform: linux-64 name: certifi version: 2024.2.2 @@ -1238,28 +1319,28 @@ package: timestamp: 1684263404702 - platform: osx-64 name: clang - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang-17 17.0.6 default_h6b1ee41_2 - url: https://conda.anaconda.org/conda-forge/osx-64/clang-17.0.6-hac416ee_2.conda + - clang-16 16.0.6 default_h7151d67_5 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-16.0.6-hdae98eb_5.conda hash: - md5: dc3f1f9873fa7935a95379031a21f7dc - sha256: 69d31c5b49addaeabd33d71f31548a1b502fb5c286a5cdd4bf53f5670c2f9223 - build: hac416ee_2 + md5: 5f020dce5a00342141d87f952c9c0282 + sha256: df7180f4ee7bed92849cb36e46a9641e71eb6c99b990dedc48f7469c080d5f5f + build: hdae98eb_5 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 5 constrains: - - clang-tools 17.0.6.* - - llvm 17.0.6.* - - llvm-tools 17.0.6.* - - llvmdev 17.0.6.* + - clang-tools 16.0.6.* + - llvm 16.0.6.* + - llvm-tools 16.0.6.* + - llvmdev 16.0.6.* license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 21880 - timestamp: 1704279589807 + size: 21576 + timestamp: 1706894282581 - platform: win-64 name: clang version: 17.0.6 @@ -1287,31 +1368,31 @@ package: size: 93457639 timestamp: 1704280018632 - platform: osx-64 - name: clang-17 - version: 17.0.6 + name: clang-16 + version: 16.0.6 category: main manager: conda dependencies: - - libclang-cpp17 17.0.6 default_h6b1ee41_2 + - libclang-cpp16 16.0.6 default_h7151d67_5 - libcxx >=16.0.6 - - libllvm17 >=17.0.6,<17.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/clang-17-17.0.6-default_h6b1ee41_2.conda + - libllvm16 >=16.0.6,<16.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-16-16.0.6-default_h7151d67_5.conda hash: - md5: c57c301875444e6207cb1a6ebfe1f914 - sha256: 8079cc7cd02cdb343cdfd23f6691cf95f66593ee945907b657e4b241e4151107 - build: default_h6b1ee41_2 + md5: e132cf98d775fd7ec3b43859373bc070 + sha256: 1ddcdef73115b5584f171a0182c1fdbbf168c667d8dcde19178d18f5c837fb43 + build: default_h7151d67_5 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 5 constrains: - - clangdev 17.0.6 - - clangxx 17.0.6 - - llvm-tools 17.0.6 - - clang-tools 17.0.6 + - clangxx 16.0.6 + - clangdev 16.0.6 + - llvm-tools 16.0.6 + - clang-tools 16.0.6 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 714938 - timestamp: 1704279295294 + size: 692571 + timestamp: 1706894157239 - platform: win-64 name: clang-17 version: 17.0.6 @@ -1342,65 +1423,65 @@ package: timestamp: 1704279749334 - platform: osx-64 name: clang_impl_osx-64 - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - cctools_osx-64 - - clang 17.0.6.* - - compiler-rt 17.0.6.* + - clang 16.0.6.* + - compiler-rt 16.0.6.* - ld64_osx-64 - - llvm-tools 17.0.6.* - url: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-17.0.6-h1af8efd_9.conda + - llvm-tools 16.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-16.0.6-h8787910_9.conda hash: - md5: 1febfb99dab0295c342ac4106a18c9c5 - sha256: c91f197cd0edb6a8425cf645918d73f197c1504ebbed736a9191f7a614873f6a - build: h1af8efd_9 + md5: 36dc72f20205cf43f63765334a5f0be7 + sha256: 3aeee43c777d67a334a7917a9a6cc43c67fabbf8acbceca31e2bef0702f0c81e + build: h8787910_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 17645 - timestamp: 1706817778710 + size: 17576 + timestamp: 1706817889548 - platform: osx-64 name: clang_osx-64 - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang_impl_osx-64 17.0.6 h1af8efd_9 - url: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-17.0.6-hb91bd55_9.conda + - clang_impl_osx-64 16.0.6 h8787910_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-16.0.6-hb91bd55_9.conda hash: - md5: 185266aefb664fdb282ca84ed5fa7656 - sha256: 6d3f8b37ce7f548eb1148c8a2ef6cccb5a1931cf0c6a758840fdb90aaab16729 + md5: 3ebda8406efd8c09ebeeba80396ac6bd + sha256: 970a919b17f6c5c04624b6a0269211bd3d7b41b3177e50f5dd7b5d036f4c25c9 build: hb91bd55_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 20675 - timestamp: 1706817790659 + size: 20647 + timestamp: 1706817901570 - platform: osx-64 name: clangxx - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang 17.0.6 hac416ee_2 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx-17.0.6-default_h6b1ee41_2.conda + - clang 16.0.6 hdae98eb_5 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx-16.0.6-default_h7151d67_5.conda hash: - md5: 2a7363e23422b547ca0daba59753ad37 - sha256: 224f74cb98548615d4ba9642eb5bac0c08b4507fe5368fcf8365ff7946b0eea6 - build: default_h6b1ee41_2 + md5: 8c3fb5d2005174683f3958383643e335 + sha256: 9aafb8802adfe804ae38b66b01b00e133f1c14713ed1abed2710ed95ddbaa3e7 + build: default_h7151d67_5 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 5 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 21964 - timestamp: 1704279670568 + size: 21699 + timestamp: 1706894307583 - platform: win-64 name: clangxx version: 17.0.6 @@ -1424,46 +1505,46 @@ package: timestamp: 1704280338941 - platform: osx-64 name: clangxx_impl_osx-64 - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang_osx-64 17.0.6 hb91bd55_9 - - clangxx 17.0.6.* + - clang_osx-64 16.0.6 hb91bd55_9 + - clangxx 16.0.6.* - libcxx >=16 - - libllvm17 >=17.0.6,<17.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-17.0.6-hc3430b7_9.conda + - libllvm16 >=16.0.6,<16.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-16.0.6-h6d92fbe_9.conda hash: - md5: acc7c4c22a4819595cba70504b64203a - sha256: c03716b83331a6bfe1e716b27ec05a7616e94ec9c6107bd86b9dff3c952aaab9 - build: hc3430b7_9 + md5: bfea277f004e2815ebd59294e9c08746 + sha256: d0d712b2ea90fd4e0c7215cb319830496ced15c56ee208f6ebba5e0d0b21f765 + build: h6d92fbe_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 17761 - timestamp: 1706817808483 + size: 17667 + timestamp: 1706817919437 - platform: osx-64 name: clangxx_osx-64 - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang_osx-64 17.0.6 hb91bd55_9 - - clangxx_impl_osx-64 17.0.6 hc3430b7_9 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-17.0.6-hb91bd55_9.conda + - clang_osx-64 16.0.6 hb91bd55_9 + - clangxx_impl_osx-64 16.0.6 h6d92fbe_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-16.0.6-hb91bd55_9.conda hash: - md5: 32001a875e9a541de94c4d621de6d353 - sha256: ab43ff4e69c46b8650940e6d9b6970625b1111fab4d4cbf8e74e7d6bec9972d6 + md5: e7297accf408701c298308eeae807c5e + sha256: 9225222bf1cd611e63f2b68c0838325f2fd5be930f81a7f3563ff5e2818955a5 build: hb91bd55_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 19458 - timestamp: 1706817822690 + size: 19414 + timestamp: 1706817934575 - platform: linux-64 name: colorama version: 0.4.6 @@ -1599,48 +1680,48 @@ package: - pkg:pypi/colorlog - platform: osx-64 name: compiler-rt - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang 17.0.6.* - - clangxx 17.0.6.* - - compiler-rt_osx-64 17.0.6.* - url: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-17.0.6-ha38d28d_1.conda + - clang 16.0.6.* + - clangxx 16.0.6.* + - compiler-rt_osx-64 16.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-16.0.6-ha38d28d_2.conda hash: - md5: 6e3e3ef883a79fb537c18cbd8865a01b - sha256: d470250e126559bf8577379b7dd41130316eab464e53bf5480285045523a0b9c - build: ha38d28d_1 + md5: 3b9e8c5c63b8e86234f499490acd85c2 + sha256: de0e2c94d9a04f60ec9aedde863d6c1fad3f261bdb63ec8adc70e2d9ecdb07bb + build: ha38d28d_2 arch: x86_64 subdir: osx-64 - build_number: 1 + build_number: 2 license: Apache-2.0 WITH LLVM-exception license_family: APACHE - size: 94403 - timestamp: 1701469601074 + size: 94198 + timestamp: 1701467261175 - platform: osx-64 name: compiler-rt_osx-64 - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - clang 17.0.6.* - - clangxx 17.0.6.* - url: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-17.0.6-ha38d28d_1.conda + - clang 16.0.6.* + - clangxx 16.0.6.* + url: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-16.0.6-ha38d28d_2.conda hash: - md5: c1ed226b5a4e45dcef22f6717732b77a - sha256: 6d4d20d1f2419eb5765027ec582a60917233d58d4ce50c8abe3d61de8917539f - build: ha38d28d_1 + md5: 7a46507edc35c6c8818db0adaf8d787f + sha256: 75270bd8e306967f6e1a8c17d14f2dfe76602a5c162088f3ea98034fe3d71e0c + build: ha38d28d_2 arch: x86_64 subdir: osx-64 - build_number: 1 + build_number: 2 constrains: - - compiler-rt 17.0.6 + - compiler-rt 16.0.6 license: Apache-2.0 WITH LLVM-exception license_family: APACHE noarch: generic - size: 10089166 - timestamp: 1701469568359 + size: 9895261 + timestamp: 1701467223753 - platform: linux-64 name: contourpy version: 1.2.0 @@ -1790,6 +1871,63 @@ package: timestamp: 1706302399623 purls: - pkg:pypi/coverage +- platform: linux-64 + name: cxx-compiler + version: 1.7.0 + category: main + manager: conda + dependencies: + - c-compiler 1.7.0 hd590300_0 + - gxx + - gxx_linux-64 12.* + url: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda + hash: + md5: b4537c98cb59f8725b0e1e65816b4a28 + sha256: 9278c12ed455a39a50d908381786540c9fd1627e4489dca9638b3e222c86d3f7 + build: h00ab1b0_0 + arch: x86_64 + subdir: linux-64 + build_number: 0 + license: BSD + size: 6262 + timestamp: 1701505307165 +- platform: osx-64 + name: cxx-compiler + version: 1.7.0 + category: main + manager: conda + dependencies: + - c-compiler 1.7.0 h282daa2_0 + - clangxx_osx-64 16.* + url: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.7.0-h7728843_0.conda + hash: + md5: 8abaa2694c1fba2b6bd3753d00a60415 + sha256: fe198da9a3ea1f3d1c9f18cceff633594549ef80c20bdb9522beb4b4446be09c + build: h7728843_0 + arch: x86_64 + subdir: osx-64 + build_number: 0 + license: BSD + size: 6428 + timestamp: 1701505479181 +- platform: win-64 + name: cxx-compiler + version: 1.7.0 + category: main + manager: conda + dependencies: + - vs2019_win-64 + url: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.7.0-h91493d7_0.conda + hash: + md5: 3949c652bedb193a39fa637d03f93150 + sha256: f16dc990c284d704c43d28822c6153ccb63ef9716d5d7a47d3125b767f72a6d8 + build: h91493d7_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: BSD + size: 6517 + timestamp: 1701505483027 - platform: linux-64 name: cycler version: 0.12.1 @@ -2930,52 +3068,71 @@ package: timestamp: 1688368852991 purls: - pkg:pypi/gast +- platform: linux-64 + name: gcc + version: 12.3.0 + category: main + manager: conda + dependencies: + - gcc_impl_linux-64 12.3.0.* + url: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.3.0-h8d2909c_2.conda + hash: + md5: e2f2f81f367e14ca1f77a870bda2fe59 + sha256: 1bbf077688822993c39518056fb43d83ff0920eb42fef11e8714d2a298cc0f27 + build: h8d2909c_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 27086 + timestamp: 1694604171830 - platform: linux-64 name: gcc_impl_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: - binutils_impl_linux-64 >=2.39 - - libgcc-devel_linux-64 13.2.0 ha9c7c90_105 - - libgcc-ng >=13.2.0 - - libgomp >=13.2.0 - - libsanitizer 13.2.0 h7e041cc_5 - - libstdcxx-ng >=13.2.0 + - libgcc-devel_linux-64 12.3.0 h8bca6fd_105 + - libgcc-ng >=12.3.0 + - libgomp >=12.3.0 + - libsanitizer 12.3.0 h0f45ef3_5 + - libstdcxx-ng >=12.3.0 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h338b0a0_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.3.0-he2b93b0_5.conda hash: - md5: a6be13181cb66a78544b1d5f7bac97d0 - sha256: baab8f8b9af54959735e629cf6d5ec9378166aa4c68ba8dc98dc0a781d548409 - build: h338b0a0_5 + md5: e89827619e73df59496c708b94f6f3d5 + sha256: a87826c55e6aa2ed5d17f267e6a583f7951658afaa4bf45cd5ba97f5583608b9 + build: he2b93b0_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 53318565 - timestamp: 1706819323755 + size: 51856676 + timestamp: 1706820019081 - platform: linux-64 name: gcc_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: - binutils_linux-64 2.40 hbdbef99_2 - - gcc_impl_linux-64 13.2.0.* + - gcc_impl_linux-64 12.3.0.* - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.2.0-h112eaf3_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-12.3.0-h76fc315_2.conda hash: - md5: 7f77e02a151daf27b4a0e1b6c12f68b9 - sha256: c9b61357776b311b910bd696623ba435383314e67af6b2b329cde812caf7d369 - build: h112eaf3_2 + md5: 11517e7b5c910c5b5d6985c0c7eb7f50 + sha256: 86f6db7399ec0362e4c4025939debbfebc8ad9ccef75e3c0e4069f85b149f24d + build: h76fc315_2 arch: x86_64 subdir: linux-64 build_number: 2 license: BSD-3-Clause license_family: BSD - size: 30329 - timestamp: 1694604327022 + size: 30351 + timestamp: 1694604476800 - platform: linux-64 name: gettext version: 0.21.1 @@ -3294,49 +3451,69 @@ package: license_family: LGPL size: 1930741 timestamp: 1706155201555 +- platform: linux-64 + name: gxx + version: 12.3.0 + category: main + manager: conda + dependencies: + - gcc 12.3.0.* + - gxx_impl_linux-64 12.3.0.* + url: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.3.0-h8d2909c_2.conda + hash: + md5: 673bac341be6b90ef9e8abae7e52ca46 + sha256: 5fd65768fb602fd21466831c96e7a2355a4df692507abbd481aa65a777151d85 + build: h8d2909c_2 + arch: x86_64 + subdir: linux-64 + build_number: 2 + license: BSD-3-Clause + license_family: BSD + size: 26539 + timestamp: 1694604501713 - platform: linux-64 name: gxx_impl_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: - - gcc_impl_linux-64 13.2.0 h338b0a0_5 - - libstdcxx-devel_linux-64 13.2.0 ha9c7c90_105 + - gcc_impl_linux-64 12.3.0 he2b93b0_5 + - libstdcxx-devel_linux-64 12.3.0 h8bca6fd_105 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h338b0a0_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.3.0-he2b93b0_5.conda hash: - md5: 88d0ccab114eb0e837725bd48cdddae5 - sha256: 9049d84fef7526e1dde8311acd2a592bf1d6f16453e68087c17d1bda01eb7867 - build: h338b0a0_5 + md5: cddba8fd94e52012abea1caad722b9c2 + sha256: 69371a1e8ad718b033bc1c58743a395e06ad19d08a2ff97e264ed82fd3ccbd9c + build: he2b93b0_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 13582212 - timestamp: 1706819574801 + size: 12742481 + timestamp: 1706820327015 - platform: linux-64 name: gxx_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: - binutils_linux-64 2.40 hbdbef99_2 - - gcc_linux-64 13.2.0 h112eaf3_2 - - gxx_impl_linux-64 13.2.0.* + - gcc_linux-64 12.3.0 h76fc315_2 + - gxx_impl_linux-64 12.3.0.* - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.2.0-hc53e3bf_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-12.3.0-h8a814eb_2.conda hash: - md5: 7b8c35963707337e5f363c36f9bb5088 - sha256: a973936c18a9f44f9b04292ed3555dbc27a6802186fa653efb0aecdaac455708 - build: hc53e3bf_2 + md5: f517b1525e9783849bd56a5dc45a9960 + sha256: 9878771cf1316230150a795d213a2f1dd7dead07dc0bccafae20533d631d5e69 + build: h8a814eb_2 arch: x86_64 subdir: linux-64 build_number: 2 license: BSD-3-Clause license_family: BSD - size: 28665 - timestamp: 1694604366542 + size: 28640 + timestamp: 1694604524890 - platform: linux-64 name: h5netcdf version: 1.3.0 @@ -4903,6 +5080,29 @@ package: license_family: MIT size: 507632 timestamp: 1701648249706 +- platform: osx-64 + name: ld64 + version: '609' + category: main + manager: conda + dependencies: + - ld64_osx-64 609 ha20a434_16 + - libllvm16 >=16.0.6,<16.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/ld64-609-ha02d983_16.conda + hash: + md5: 6dfb00e6cab263fe598d48df153d3288 + sha256: 63cd1976379a7e0ff8b0e57b0e16b112a0077acce83af364251ab309128a227d + build: ha02d983_16 + arch: x86_64 + subdir: osx-64 + build_number: 16 + constrains: + - cctools_osx-64 973.0.1.* + - cctools 973.0.1.* + license: APSL-2.0 + license_family: Other + size: 19310 + timestamp: 1706798136816 - platform: osx-64 name: ld64_osx-64 version: '609' @@ -4910,26 +5110,26 @@ package: manager: conda dependencies: - libcxx - - libllvm17 >=17.0.6,<17.1.0a0 + - libllvm16 >=16.0.6,<16.1.0a0 - sigtool - tapi >=1100.0.11,<1101.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-609-hd3532be_16.conda + url: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-609-ha20a434_16.conda hash: - md5: 96e42c402c291cfd897d99e85163cd01 - sha256: 6c92d1aa6f7aebb2ed5050d2759e2240cd995b0b73086bbb39f5ecdea2914ece - build: hd3532be_16 + md5: db19844278d11471e5f4eddf50277f4f + sha256: eef540c95a418169617bdda1699d8f5441f819ed673d81f363c5c728a6273749 + build: ha20a434_16 arch: x86_64 subdir: osx-64 build_number: 16 constrains: - cctools_osx-64 973.0.1.* - - clang >=17.0.6,<18.0a0 - - ld 609.* - cctools 973.0.1.* + - clang >=16.0.6,<17.0a0 + - ld 609.* license: APSL-2.0 license_family: Other - size: 1049817 - timestamp: 1706797833035 + size: 1055029 + timestamp: 1706798033425 - platform: linux-64 name: ld_impl_linux-64 version: '2.40' @@ -5530,25 +5730,25 @@ package: size: 148080 timestamp: 1701415503085 - platform: osx-64 - name: libclang-cpp17 - version: 17.0.6 + name: libclang-cpp16 + version: 16.0.6 category: main manager: conda dependencies: - libcxx >=16.0.6 - - libllvm17 >=17.0.6,<17.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp17-17.0.6-default_h6b1ee41_2.conda + - libllvm16 >=16.0.6,<16.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp16-16.0.6-default_h7151d67_5.conda hash: - md5: 2df787005c3d38861e863fe54cfde28b - sha256: d3a3a66aa769d206148acb1cbdb9c4be53916c041532c334861f2387dccc56e8 - build: default_h6b1ee41_2 + md5: 3189f83f21974fa2a9204f949d2aff18 + sha256: b308b6faee84c4646dca87221d8a0d1e293a8b9a2a1b83a4500abcd4dd6c8eca + build: default_h7151d67_5 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 5 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 13178521 - timestamp: 1704279056417 + size: 12713468 + timestamp: 1706894023056 - platform: linux-64 name: libclang13 version: 15.0.7 @@ -5963,23 +6163,23 @@ package: timestamp: 1687765514062 - platform: linux-64 name: libgcc-devel_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-ha9c7c90_105.conda + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.3.0-h8bca6fd_105.conda hash: - md5: 3bc29a967fee57e193ce51f51c598bca - sha256: 858029ad4d66869c533bb5a22e95e7c044ca66c61d6f403f10d9ae074a0e360e - build: ha9c7c90_105 + md5: e12ce6b051085b8f27e239f5e5f5bce5 + sha256: ed2dfc6d959dc27e7668439e1ad31b127b43e99f9a7e77a2d34b958fa797316b + build: h8bca6fd_105 arch: x86_64 subdir: linux-64 build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 2578210 - timestamp: 1706819085946 + size: 2568967 + timestamp: 1706819720613 - platform: linux-64 name: libgcc-ng version: 13.2.0 @@ -6427,8 +6627,8 @@ package: size: 33321457 timestamp: 1701375836233 - platform: osx-64 - name: libllvm17 - version: 17.0.6 + name: libllvm16 + version: 16.0.6 category: main manager: conda dependencies: @@ -6436,18 +6636,18 @@ package: - libxml2 >=2.12.1,<3.0.0a0 - libzlib >=1.2.13,<1.3.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/libllvm17-17.0.6-hbedff68_1.conda + url: https://conda.anaconda.org/conda-forge/osx-64/libllvm16-16.0.6-hbedff68_3.conda hash: - md5: fcd38f0553a99fa279fb66a5bfc2fb28 - sha256: 605460ecc4ccc04163d0b06c99693864e5bcba7a9f014a5263c9856195282265 - build: hbedff68_1 + md5: 8fd56c0adc07a37f93bd44aa61a97c90 + sha256: ad848dc0bb02b1dbe54324ee5700b050a2e5f63c095f5229b2de58249a3e268e + build: hbedff68_3 arch: x86_64 subdir: osx-64 - build_number: 1 + build_number: 3 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 26306756 - timestamp: 1701378823527 + size: 25196932 + timestamp: 1701379796962 - platform: linux-64 name: libnghttp2 version: 1.58.0 @@ -6701,23 +6901,23 @@ package: timestamp: 1702130001416 - platform: linux-64 name: libsanitizer - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: - - libgcc-ng >=13.2.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h7e041cc_5.conda + - libgcc-ng >=12.3.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.3.0-h0f45ef3_5.conda hash: - md5: 3f686300a92604d1bdff9a29dd4a6639 - sha256: 97ecdab7e4e96400d712c2d6ba2b7c30a97278e9f4470ea0ff36bf4f1447b3b9 - build: h7e041cc_5 + md5: 11d1ceacff40054d5a74b12975d76f20 + sha256: 70329cb8b0604273521cdae63520cb364a8d5477e156e65cdbd810984caeabee + build: h0f45ef3_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 4114208 - timestamp: 1706819228913 + size: 3890717 + timestamp: 1706819904612 - platform: linux-64 name: libsndfile version: 1.2.2 @@ -6867,23 +7067,23 @@ package: timestamp: 1685838242099 - platform: linux-64 name: libstdcxx-devel_linux-64 - version: 13.2.0 + version: 12.3.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-ha9c7c90_105.conda + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.3.0-h8bca6fd_105.conda hash: - md5: 66383205c2e1bdf013df52fa9e3e6763 - sha256: 67e999ee56481844ca4ce2e61132c5c16f3f00a05daa1d0ea4b2c684eea5de5a - build: ha9c7c90_105 + md5: b3c6062c84a8e172555ee104ea6a01ab + sha256: efcd4b4cba79cd0fb5a87757c7ca63171cf3b7b06446192364bae7defb50b94c + build: h8bca6fd_105 arch: x86_64 subdir: linux-64 build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 13020920 - timestamp: 1706819128553 + size: 11597918 + timestamp: 1706819775415 - platform: linux-64 name: libstdcxx-ng version: 13.2.0 @@ -7449,31 +7649,31 @@ package: timestamp: 1701222810938 - platform: osx-64 name: llvm-tools - version: 17.0.6 + version: 16.0.6 category: main manager: conda dependencies: - - libllvm17 17.0.6 hbedff68_1 + - libllvm16 16.0.6 hbedff68_3 - libxml2 >=2.12.1,<3.0.0a0 - libzlib >=1.2.13,<1.3.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-17.0.6-hbedff68_1.conda + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-16.0.6-hbedff68_3.conda hash: - md5: 4260f86b3dd201ad7ea758d783cd5613 - sha256: 2380e9ac72aba8ef351ec13c9d5b1b233057c70bf4b9b3cea0b3f5bfb5a4e211 - build: hbedff68_1 + md5: e9356b0807462e8f84c1384a8da539a5 + sha256: dff3ca83c6945f020ee6d3c62ddb3ed175ae8a357be3689a8836bcfe25ad9882 + build: hbedff68_3 arch: x86_64 subdir: osx-64 - build_number: 1 + build_number: 3 constrains: - - llvm 17.0.6 - - clang 17.0.6 - - clang-tools 17.0.6 - - llvmdev 17.0.6 + - llvmdev 16.0.6 + - clang 16.0.6.* + - clang-tools 16.0.6.* + - llvm 16.0.6.* license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 23219165 - timestamp: 1701378990823 + size: 22221159 + timestamp: 1701379965425 - platform: linux-64 name: lz4-c version: 1.9.4 @@ -13543,6 +13743,44 @@ package: license_family: BSD size: 16988 timestamp: 1702511261442 +- platform: win-64 + name: vs2019_win-64 + version: 19.29.30139 + category: main + manager: conda + dependencies: + - vswhere + url: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-he1865b1_18.conda + hash: + md5: 6d9d317010ece223fc46a69360d0eb84 + sha256: b8f5128fc767fc04b48ec10df7ac6eea5d07df0efa2d91fff6d872e3dcde9029 + build: he1865b1_18 + arch: x86_64 + subdir: win-64 + build_number: 18 + track_features: vc14 + license: BSD-3-Clause + license_family: BSD + size: 19488 + timestamp: 1702511289992 +- platform: win-64 + name: vswhere + version: 3.1.4 + category: main + manager: conda + dependencies: [] + url: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.4-h57928b3_0.conda + hash: + md5: b1d1d6a1f874d8c93a57b5efece52f03 + sha256: 553c41fc1a883415a39444313f8d99236685529776fdd04e8d97288b73496002 + build: h57928b3_0 + arch: x86_64 + subdir: win-64 + build_number: 0 + license: MIT + license_family: MIT + size: 218421 + timestamp: 1682376911339 - platform: linux-64 name: wcwidth version: 0.2.13 diff --git a/pixi.toml b/pixi.toml index 3da865e..3d03b81 100644 --- a/pixi.toml +++ b/pixi.toml @@ -43,6 +43,7 @@ cython = ">=3.0.8,<3.1" fftw = ">=3.3.10,<3.4" pkg-config = ">=0.29.2,<0.30" pyfftw = ">=0.13.1,<0.14" +cxx-compiler = ">=1.7.0,<1.8" [pypi-dependencies] pymech = "*" From cc61cb86a3c46c8770c4ddea0eb9dc77168a8aab Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 08:50:01 +0100 Subject: [PATCH 32/36] Fix fftw_mpi --- noxfile.py | 11 +++++------ plugins/fluidfft-fftwmpi/meson.build | 3 ++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/noxfile.py b/noxfile.py index 34164ab..124a6f0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -17,7 +17,6 @@ """ import os -import shlex from pathlib import Path from functools import partial @@ -63,7 +62,7 @@ def tests(session, with_mpi, with_cov): session.install( "-e", "plugins/fluidfft-mpi_with_fftw", "--no-build-isolation", "-v" ) - # session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") + session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") def run_command(command, **kwargs): session.run(*command.split(), **kwargs) @@ -96,10 +95,10 @@ def run_command(command, **kwargs): "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-mpi_with_fftw", external=True, ) - # run_command( - # "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", - # external=True, - # ) + run_command( + "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", + external=True, + ) if with_cov: if with_mpi: diff --git a/plugins/fluidfft-fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/meson.build index f278bba..95e16de 100644 --- a/plugins/fluidfft-fftwmpi/meson.build +++ b/plugins/fluidfft-fftwmpi/meson.build @@ -17,7 +17,8 @@ mpi_dep = dependency('mpi', language: 'cpp') # fftwmpi_dep = dependency('fftw3-mpi', static: false) compiler = meson.get_compiler('cpp') -fftwmpi_dep = compiler.find_library('fftw_mpi', required: true) +# fftw_mpi is not found on Ubuntu +fftwmpi_dep = compiler.find_library('fftw_mpi', required: false) py_mod = import('python') py = py_mod.find_installation('python3', pure: false) From 7c33a7b18ae2b23c8f34a418394c79a6c7187968 Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 09:17:55 +0100 Subject: [PATCH 33/36] C++ code not yet compatible with Windows --- .github/workflows/ci-pixi.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-pixi.yml b/.github/workflows/ci-pixi.yml index fe7008f..b11d400 100644 --- a/.github/workflows/ci-pixi.yml +++ b/.github/workflows/ci-pixi.yml @@ -21,11 +21,12 @@ jobs: with: pixi-version: v0.11.1 cache: false - - name: Tests + - name: Install run: | pixi run install-editable - pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps + # C++ code is not yet compatible with Windows + # pixi run pip install plugins/fluidfft-fftw -v --no-build-isolation --no-deps - name: Tests run: | pixi run pytest -v tests - pixi run pytest -v plugins/fluidfft-fftw + # pixi run pytest -v plugins/fluidfft-fftw From 1b9771d241ebaf23fe875b98430ccfeebe3d5a88 Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 09:28:33 +0100 Subject: [PATCH 34/36] Cleanup .github/workflows/ci-linux.yml --- .github/workflows/ci-linux.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 047be24..8f42fda 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -36,12 +36,16 @@ jobs: # cython is for coverage python -m pip install coverage cython - - name: Run tests + - name: Run sequential tests with nox run: | - ls /usr/lib/x86_64-linux-gnu/libfftw3* nox --session "tests(with_cov=True, with_mpi=False)" - make cleanall + + - name: Run parallel tests with nox + run: | nox --session "tests(with_cov=True, with_mpi=True)" + + - name: Produce coverage xml + run: | coverage xml - name: Upload coverage to codecov From 6f4ed15bc63e8e0f9ffb977cb347800ca290d97b Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 15:04:56 +0100 Subject: [PATCH 35/36] nox test coverage --- .flake8 | 2 + .github/workflows/ci-linux.yml | 7 + noxfile.py | 58 +- pdm.lock | 53 +- pixi.lock | 644 ++++++------------ pixi.toml | 1 - plugins/fluidfft-builder/pyproject.toml | 2 +- plugins/fluidfft-fftw/pyproject.toml | 2 +- plugins/fluidfft-fftwmpi/pyproject.toml | 2 +- plugins/fluidfft-mpi_with_fftw/pyproject.toml | 2 +- pyproject.toml | 42 +- setup.cfg | 25 - tests/test_2d.py | 26 +- tests/test_3d.py | 25 +- 14 files changed, 348 insertions(+), 543 deletions(-) create mode 100644 .flake8 delete mode 100644 setup.cfg diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..ef90a1b --- /dev/null +++ b/.flake8 @@ -0,0 +1,2 @@ +[flake8] +ignore = E501,E225,E226,E303,E201,E202,E203,W503 diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 8f42fda..6807a72 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -39,10 +39,12 @@ jobs: - name: Run sequential tests with nox run: | nox --session "tests(with_cov=True, with_mpi=False)" + mv .coverage/coverage.xml coverage_without_mpi.xml - name: Run parallel tests with nox run: | nox --session "tests(with_cov=True, with_mpi=True)" + mv .coverage/coverage.xml coverage_with_mpi.xml - name: Produce coverage xml run: | @@ -51,3 +53,8 @@ jobs: - name: Upload coverage to codecov if: ${{ success() }} uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false # optional (default = false) + verbose: true # optional (default = false) + files: coverage_without_mpi.xml,coverage_with_mpi.xml diff --git a/noxfile.py b/noxfile.py index 124a6f0..5d5672f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -19,6 +19,7 @@ import os from pathlib import Path from functools import partial +from shutil import rmtree import nox @@ -49,12 +50,13 @@ def tests(session, with_mpi, with_cov): session.run_always(*command.split(), external=True) session.install( + "-e", ".", "--no-deps", + "--no-build-isolation", "-v", silent=False, ) - session.run("ls", "src/fluidfft/fft3d", silent=False, external=True) session.install("plugins/fluidfft-builder") session.install("-e", "plugins/fluidfft-fftw", "--no-build-isolation", "-v") @@ -64,55 +66,53 @@ def tests(session, with_mpi, with_cov): ) session.install("-e", "plugins/fluidfft-fftwmpi", "--no-build-isolation", "-v") + if with_cov: + path_coverage = Path.cwd() / ".coverage" + rmtree(path_coverage, ignore_errors=True) + path_coverage.mkdir(exist_ok=True) + def run_command(command, **kwargs): + if with_cov: + command += " --cov --cov-config=pyproject.toml --no-cov-on-fail --cov-report=term-missing --cov-append" session.run(*command.split(), **kwargs) - if with_cov: - cov_path = Path.cwd() / ".coverage" - cov_path.mkdir(exist_ok=True) - command = "pytest -v -s tests" - if with_cov: - command += ( - " --cov --cov-config=setup.cfg --no-cov-on-fail --cov-report=term-missing" - ) run_command(command, *session.posargs) run_command(command, *session.posargs, env={"TRANSONIC_NO_REPLACE": "1"}) - run_command("pytest -v plugins/fluidfft-fftw") if with_mpi: - if with_cov: - command = "mpirun -np 2 --oversubscribe coverage run -p -m pytest -v -s --exitfirst tests" - else: - command = "mpirun -np 2 --oversubscribe pytest -v -s tests" + def test_plugin(package_name): + if with_cov: + command = "mpirun -np 2 --oversubscribe coverage run -p -m pytest -v -s --exitfirst" + else: + command = "mpirun -np 2 --oversubscribe pytest -v -s " - run_command(command, external=True) + command += f" plugins/{package_name}" + session.run(*command.split(), external=True) - run_command( - "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-mpi_with_fftw", - external=True, - ) - run_command( - "mpirun -np 2 --oversubscribe pytest -v plugins/fluidfft-fftwmpi", - external=True, - ) + test_plugin("fluidfft-mpi_with_fftw") + test_plugin("fluidfft-fftwmpi") if with_cov: if with_mpi: - run_command("coverage combine") - run_command("coverage report") + session.run("coverage", "combine") + session.run("coverage", "report") + session.run("coverage", "xml") + session.run("coverage", "html") @nox.session def doc(session): - session.run_always("pdm", "sync", "--clean", "-G", "doc", "--no-self", external=True) - session.run_always("python", "-c", "from fluidfft_builder import create_fake_modules as c; c()") - session.install( - ".", "--no-deps", "-C", "setup-args=-Dtransonic-backend=python" + session.run_always( + "pdm", "sync", "--clean", "-G", "doc", "--no-self", external=True + ) + session.run_always( + "python", "-c", "from fluidfft_builder import create_fake_modules as c; c()" ) + session.install(".", "--no-deps", "-C", "setup-args=-Dtransonic-backend=python") session.chdir("doc") session.run("make", "cleanall", external=True) session.run("make", external=True) diff --git a/pdm.lock b/pdm.lock index 6c00013..59088f9 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "build", "dask", "dev", "doc", "lint", "mpi", "pyfftw", "test"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:57e808ead91d9ff56f1c42dbbd7712ab06f3763884657d0c1f3fa21b956e7ff0" +content_hash = "sha256:ed54aa56f5416351d04eef454a40e1d9560965887917f8053e8086757041e8ac" [[package]] name = "alabaster" @@ -955,6 +955,17 @@ files = [ {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, ] +[[package]] +name = "h11" +version = "0.14.0" +requires_python = ">=3.7" +summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +groups = ["doc"] +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + [[package]] name = "h5netcdf" version = "1.3.0" @@ -1002,6 +1013,39 @@ files = [ {file = "h5py-3.10.0.tar.gz", hash = "sha256:d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049"}, ] +[[package]] +name = "httpcore" +version = "1.0.2" +requires_python = ">=3.8" +summary = "A minimal low-level HTTP client." +groups = ["doc"] +dependencies = [ + "certifi", + "h11<0.15,>=0.13", +] +files = [ + {file = "httpcore-1.0.2-py3-none-any.whl", hash = "sha256:096cc05bca73b8e459a1fc3dcf585148f63e534eae4339559c9b8a8d6399acc7"}, + {file = "httpcore-1.0.2.tar.gz", hash = "sha256:9fc092e4799b26174648e54b74ed5f683132a464e95643b226e00c2ed2fa6535"}, +] + +[[package]] +name = "httpx" +version = "0.26.0" +requires_python = ">=3.8" +summary = "The next generation HTTP client." +groups = ["doc"] +dependencies = [ + "anyio", + "certifi", + "httpcore==1.*", + "idna", + "sniffio", +] +files = [ + {file = "httpx-0.26.0-py3-none-any.whl", hash = "sha256:8915f5a3627c4d47b73e8202457cb28f1266982d1159bd5779d86a80c0eab1cd"}, + {file = "httpx-0.26.0.tar.gz", hash = "sha256:451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf"}, +] + [[package]] name = "idna" version = "3.6" @@ -1440,12 +1484,13 @@ files = [ [[package]] name = "jupyterlab" -version = "4.0.12" +version = "4.1.0" requires_python = ">=3.8" summary = "JupyterLab computational environment" groups = ["doc"] dependencies = [ "async-lru>=1.0.0", + "httpx>=0.25.0", "importlib-metadata>=4.8.3; python_version < \"3.10\"", "ipykernel", "jinja2>=3.0.3", @@ -1460,8 +1505,8 @@ dependencies = [ "traitlets", ] files = [ - {file = "jupyterlab-4.0.12-py3-none-any.whl", hash = "sha256:53f132480e5f6564f4e20d1b5ed4e8b7945952a2decd5bdfa43760b1b536c99d"}, - {file = "jupyterlab-4.0.12.tar.gz", hash = "sha256:965d92efa82a538ed70ccb3968d9aabba788840da882e13d7b061780cdedc3b7"}, + {file = "jupyterlab-4.1.0-py3-none-any.whl", hash = "sha256:5380e85fb4f11a227ed2db13103e513cfea274d1011f6210e62d611e92e0369d"}, + {file = "jupyterlab-4.1.0.tar.gz", hash = "sha256:92cdfd86c53e163fb9e91e14497901153536c5a889c9225dade270f6107a077f"}, ] [[package]] diff --git a/pixi.lock b/pixi.lock index 350e525..2c3efc6 100644 --- a/pixi.lock +++ b/pixi.lock @@ -433,25 +433,6 @@ package: timestamp: 1627922710217 purls: - pkg:pypi/beniget -- platform: linux-64 - name: binutils - version: '2.40' - category: main - manager: conda - dependencies: - - binutils_impl_linux-64 >=2.40,<2.41.0a0 - url: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.40-hdd6e379_0.conda - hash: - md5: ccc940fddbc3fcd3d79cd4c654c4b5c4 - sha256: 35f3b042f295fd7387de11cf426ca8ee5257e5c98b88560c6c5ad4ef3c85d38c - build: hdd6e379_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: GPL-3.0-only - license_family: GPL - size: 30469 - timestamp: 1674833987166 - platform: linux-64 name: binutils_impl_linux-64 version: '2.40' @@ -900,47 +881,6 @@ package: license_family: BSD size: 209496 timestamp: 1706187677719 -- platform: linux-64 - name: c-compiler - version: 1.7.0 - category: main - manager: conda - dependencies: - - binutils - - gcc - - gcc_linux-64 12.* - url: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.7.0-hd590300_0.conda - hash: - md5: fad1d0a651bf929c6c16fbf1f6ccfa7c - sha256: 19343f6cdefd0a2e36c4f0da81ed9ea964e5b4e82a2304809afd8f151bf2ac8c - build: hd590300_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: BSD - size: 6287 - timestamp: 1701505302633 -- platform: osx-64 - name: c-compiler - version: 1.7.0 - category: main - manager: conda - dependencies: - - cctools >=949.0.1 - - clang_osx-64 16.* - - ld64 >=530 - - llvm-openmp - url: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.7.0-h282daa2_0.conda - hash: - md5: 4652f33fe8d895f61177e2783b289377 - sha256: c32fdb29dac5e1a01aa486aba1f7b21cff5c1c7748c0cf9b6c9475888b61eb17 - build: h282daa2_0 - arch: x86_64 - subdir: osx-64 - build_number: 0 - license: BSD - size: 6409 - timestamp: 1701505468495 - platform: linux-64 name: ca-certificates version: 2024.2.2 @@ -1152,27 +1092,6 @@ package: license: LGPL-2.1-only or MPL-1.1 size: 982351 timestamp: 1697028423052 -- platform: osx-64 - name: cctools - version: 973.0.1 - category: main - manager: conda - dependencies: - - cctools_osx-64 973.0.1 ha1c5b94_16 - - ld64 609 ha02d983_16 - - libllvm16 >=16.0.6,<16.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/cctools-973.0.1-h40f6528_16.conda - hash: - md5: b7234c329d4503600b032f168f4b65e7 - sha256: ef3afa0ca2e159360575d5de6cba102494d2dd03c0fda77e858ae9fba73b9e61 - build: h40f6528_16 - arch: x86_64 - subdir: osx-64 - build_number: 16 - license: APSL-2.0 - license_family: Other - size: 22144 - timestamp: 1706798167450 - platform: osx-64 name: cctools_osx-64 version: 973.0.1 @@ -1181,25 +1100,25 @@ package: dependencies: - ld64_osx-64 >=609,<610.0a0 - libcxx - - libllvm16 >=16.0.6,<16.1.0a0 + - libllvm17 >=17.0.6,<17.1.0a0 - libzlib >=1.2.13,<1.3.0a0 - sigtool - url: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-973.0.1-ha1c5b94_16.conda + url: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-973.0.1-h031c385_16.conda hash: - md5: 00eb71204323fa6449b38dd34ab9c65d - sha256: aa69f18388246169ac603148501bdd507bf935e97f384cf8f78ef94e3b296158 - build: ha1c5b94_16 + md5: ab815048866f8844132db12a1b5bc18d + sha256: 91c3d1cfe8a485aeb53767d8a7cf685a4d4ffb603741957175271722916d1ba5 + build: h031c385_16 arch: x86_64 subdir: osx-64 build_number: 16 constrains: - cctools 973.0.1.* - - clang 16.0.* + - clang 17.0.* - ld64 609.* license: APSL-2.0 license_family: Other - size: 1116102 - timestamp: 1706798100072 + size: 1100288 + timestamp: 1706797898287 - platform: linux-64 name: certifi version: 2024.2.2 @@ -1319,28 +1238,28 @@ package: timestamp: 1684263404702 - platform: osx-64 name: clang - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang-16 16.0.6 default_h7151d67_5 - url: https://conda.anaconda.org/conda-forge/osx-64/clang-16.0.6-hdae98eb_5.conda + - clang-17 17.0.6 default_h6b1ee41_2 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-17.0.6-hac416ee_2.conda hash: - md5: 5f020dce5a00342141d87f952c9c0282 - sha256: df7180f4ee7bed92849cb36e46a9641e71eb6c99b990dedc48f7469c080d5f5f - build: hdae98eb_5 + md5: dc3f1f9873fa7935a95379031a21f7dc + sha256: 69d31c5b49addaeabd33d71f31548a1b502fb5c286a5cdd4bf53f5670c2f9223 + build: hac416ee_2 arch: x86_64 subdir: osx-64 - build_number: 5 + build_number: 2 constrains: - - clang-tools 16.0.6.* - - llvm 16.0.6.* - - llvm-tools 16.0.6.* - - llvmdev 16.0.6.* + - clang-tools 17.0.6.* + - llvm 17.0.6.* + - llvm-tools 17.0.6.* + - llvmdev 17.0.6.* license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 21576 - timestamp: 1706894282581 + size: 21880 + timestamp: 1704279589807 - platform: win-64 name: clang version: 17.0.6 @@ -1368,31 +1287,31 @@ package: size: 93457639 timestamp: 1704280018632 - platform: osx-64 - name: clang-16 - version: 16.0.6 + name: clang-17 + version: 17.0.6 category: main manager: conda dependencies: - - libclang-cpp16 16.0.6 default_h7151d67_5 + - libclang-cpp17 17.0.6 default_h6b1ee41_2 - libcxx >=16.0.6 - - libllvm16 >=16.0.6,<16.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/clang-16-16.0.6-default_h7151d67_5.conda + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clang-17-17.0.6-default_h6b1ee41_2.conda hash: - md5: e132cf98d775fd7ec3b43859373bc070 - sha256: 1ddcdef73115b5584f171a0182c1fdbbf168c667d8dcde19178d18f5c837fb43 - build: default_h7151d67_5 + md5: c57c301875444e6207cb1a6ebfe1f914 + sha256: 8079cc7cd02cdb343cdfd23f6691cf95f66593ee945907b657e4b241e4151107 + build: default_h6b1ee41_2 arch: x86_64 subdir: osx-64 - build_number: 5 + build_number: 2 constrains: - - clangxx 16.0.6 - - clangdev 16.0.6 - - llvm-tools 16.0.6 - - clang-tools 16.0.6 + - clangdev 17.0.6 + - clangxx 17.0.6 + - llvm-tools 17.0.6 + - clang-tools 17.0.6 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 692571 - timestamp: 1706894157239 + size: 714938 + timestamp: 1704279295294 - platform: win-64 name: clang-17 version: 17.0.6 @@ -1423,65 +1342,65 @@ package: timestamp: 1704279749334 - platform: osx-64 name: clang_impl_osx-64 - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - cctools_osx-64 - - clang 16.0.6.* - - compiler-rt 16.0.6.* + - clang 17.0.6.* + - compiler-rt 17.0.6.* - ld64_osx-64 - - llvm-tools 16.0.6.* - url: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-16.0.6-h8787910_9.conda + - llvm-tools 17.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-17.0.6-h1af8efd_9.conda hash: - md5: 36dc72f20205cf43f63765334a5f0be7 - sha256: 3aeee43c777d67a334a7917a9a6cc43c67fabbf8acbceca31e2bef0702f0c81e - build: h8787910_9 + md5: 1febfb99dab0295c342ac4106a18c9c5 + sha256: c91f197cd0edb6a8425cf645918d73f197c1504ebbed736a9191f7a614873f6a + build: h1af8efd_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 17576 - timestamp: 1706817889548 + size: 17645 + timestamp: 1706817778710 - platform: osx-64 name: clang_osx-64 - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang_impl_osx-64 16.0.6 h8787910_9 - url: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-16.0.6-hb91bd55_9.conda + - clang_impl_osx-64 17.0.6 h1af8efd_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-17.0.6-hb91bd55_9.conda hash: - md5: 3ebda8406efd8c09ebeeba80396ac6bd - sha256: 970a919b17f6c5c04624b6a0269211bd3d7b41b3177e50f5dd7b5d036f4c25c9 + md5: 185266aefb664fdb282ca84ed5fa7656 + sha256: 6d3f8b37ce7f548eb1148c8a2ef6cccb5a1931cf0c6a758840fdb90aaab16729 build: hb91bd55_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 20647 - timestamp: 1706817901570 + size: 20675 + timestamp: 1706817790659 - platform: osx-64 name: clangxx - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang 16.0.6 hdae98eb_5 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx-16.0.6-default_h7151d67_5.conda + - clang 17.0.6 hac416ee_2 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx-17.0.6-default_h6b1ee41_2.conda hash: - md5: 8c3fb5d2005174683f3958383643e335 - sha256: 9aafb8802adfe804ae38b66b01b00e133f1c14713ed1abed2710ed95ddbaa3e7 - build: default_h7151d67_5 + md5: 2a7363e23422b547ca0daba59753ad37 + sha256: 224f74cb98548615d4ba9642eb5bac0c08b4507fe5368fcf8365ff7946b0eea6 + build: default_h6b1ee41_2 arch: x86_64 subdir: osx-64 - build_number: 5 + build_number: 2 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 21699 - timestamp: 1706894307583 + size: 21964 + timestamp: 1704279670568 - platform: win-64 name: clangxx version: 17.0.6 @@ -1505,46 +1424,46 @@ package: timestamp: 1704280338941 - platform: osx-64 name: clangxx_impl_osx-64 - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang_osx-64 16.0.6 hb91bd55_9 - - clangxx 16.0.6.* + - clang_osx-64 17.0.6 hb91bd55_9 + - clangxx 17.0.6.* - libcxx >=16 - - libllvm16 >=16.0.6,<16.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-16.0.6-h6d92fbe_9.conda + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-17.0.6-hc3430b7_9.conda hash: - md5: bfea277f004e2815ebd59294e9c08746 - sha256: d0d712b2ea90fd4e0c7215cb319830496ced15c56ee208f6ebba5e0d0b21f765 - build: h6d92fbe_9 + md5: acc7c4c22a4819595cba70504b64203a + sha256: c03716b83331a6bfe1e716b27ec05a7616e94ec9c6107bd86b9dff3c952aaab9 + build: hc3430b7_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 17667 - timestamp: 1706817919437 + size: 17761 + timestamp: 1706817808483 - platform: osx-64 name: clangxx_osx-64 - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang_osx-64 16.0.6 hb91bd55_9 - - clangxx_impl_osx-64 16.0.6 h6d92fbe_9 - url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-16.0.6-hb91bd55_9.conda + - clang_osx-64 17.0.6 hb91bd55_9 + - clangxx_impl_osx-64 17.0.6 hc3430b7_9 + url: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-17.0.6-hb91bd55_9.conda hash: - md5: e7297accf408701c298308eeae807c5e - sha256: 9225222bf1cd611e63f2b68c0838325f2fd5be930f81a7f3563ff5e2818955a5 + md5: 32001a875e9a541de94c4d621de6d353 + sha256: ab43ff4e69c46b8650940e6d9b6970625b1111fab4d4cbf8e74e7d6bec9972d6 build: hb91bd55_9 arch: x86_64 subdir: osx-64 build_number: 9 license: BSD-3-Clause license_family: BSD - size: 19414 - timestamp: 1706817934575 + size: 19458 + timestamp: 1706817822690 - platform: linux-64 name: colorama version: 0.4.6 @@ -1680,48 +1599,48 @@ package: - pkg:pypi/colorlog - platform: osx-64 name: compiler-rt - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang 16.0.6.* - - clangxx 16.0.6.* - - compiler-rt_osx-64 16.0.6.* - url: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-16.0.6-ha38d28d_2.conda + - clang 17.0.6.* + - clangxx 17.0.6.* + - compiler-rt_osx-64 17.0.6.* + url: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-17.0.6-ha38d28d_1.conda hash: - md5: 3b9e8c5c63b8e86234f499490acd85c2 - sha256: de0e2c94d9a04f60ec9aedde863d6c1fad3f261bdb63ec8adc70e2d9ecdb07bb - build: ha38d28d_2 + md5: 6e3e3ef883a79fb537c18cbd8865a01b + sha256: d470250e126559bf8577379b7dd41130316eab464e53bf5480285045523a0b9c + build: ha38d28d_1 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 1 license: Apache-2.0 WITH LLVM-exception license_family: APACHE - size: 94198 - timestamp: 1701467261175 + size: 94403 + timestamp: 1701469601074 - platform: osx-64 name: compiler-rt_osx-64 - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - clang 16.0.6.* - - clangxx 16.0.6.* - url: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-16.0.6-ha38d28d_2.conda + - clang 17.0.6.* + - clangxx 17.0.6.* + url: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-17.0.6-ha38d28d_1.conda hash: - md5: 7a46507edc35c6c8818db0adaf8d787f - sha256: 75270bd8e306967f6e1a8c17d14f2dfe76602a5c162088f3ea98034fe3d71e0c - build: ha38d28d_2 + md5: c1ed226b5a4e45dcef22f6717732b77a + sha256: 6d4d20d1f2419eb5765027ec582a60917233d58d4ce50c8abe3d61de8917539f + build: ha38d28d_1 arch: x86_64 subdir: osx-64 - build_number: 2 + build_number: 1 constrains: - - compiler-rt 16.0.6 + - compiler-rt 17.0.6 license: Apache-2.0 WITH LLVM-exception license_family: APACHE noarch: generic - size: 9895261 - timestamp: 1701467223753 + size: 10089166 + timestamp: 1701469568359 - platform: linux-64 name: contourpy version: 1.2.0 @@ -1871,63 +1790,6 @@ package: timestamp: 1706302399623 purls: - pkg:pypi/coverage -- platform: linux-64 - name: cxx-compiler - version: 1.7.0 - category: main - manager: conda - dependencies: - - c-compiler 1.7.0 hd590300_0 - - gxx - - gxx_linux-64 12.* - url: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.7.0-h00ab1b0_0.conda - hash: - md5: b4537c98cb59f8725b0e1e65816b4a28 - sha256: 9278c12ed455a39a50d908381786540c9fd1627e4489dca9638b3e222c86d3f7 - build: h00ab1b0_0 - arch: x86_64 - subdir: linux-64 - build_number: 0 - license: BSD - size: 6262 - timestamp: 1701505307165 -- platform: osx-64 - name: cxx-compiler - version: 1.7.0 - category: main - manager: conda - dependencies: - - c-compiler 1.7.0 h282daa2_0 - - clangxx_osx-64 16.* - url: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.7.0-h7728843_0.conda - hash: - md5: 8abaa2694c1fba2b6bd3753d00a60415 - sha256: fe198da9a3ea1f3d1c9f18cceff633594549ef80c20bdb9522beb4b4446be09c - build: h7728843_0 - arch: x86_64 - subdir: osx-64 - build_number: 0 - license: BSD - size: 6428 - timestamp: 1701505479181 -- platform: win-64 - name: cxx-compiler - version: 1.7.0 - category: main - manager: conda - dependencies: - - vs2019_win-64 - url: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.7.0-h91493d7_0.conda - hash: - md5: 3949c652bedb193a39fa637d03f93150 - sha256: f16dc990c284d704c43d28822c6153ccb63ef9716d5d7a47d3125b767f72a6d8 - build: h91493d7_0 - arch: x86_64 - subdir: win-64 - build_number: 0 - license: BSD - size: 6517 - timestamp: 1701505483027 - platform: linux-64 name: cycler version: 0.12.1 @@ -3068,71 +2930,52 @@ package: timestamp: 1688368852991 purls: - pkg:pypi/gast -- platform: linux-64 - name: gcc - version: 12.3.0 - category: main - manager: conda - dependencies: - - gcc_impl_linux-64 12.3.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gcc-12.3.0-h8d2909c_2.conda - hash: - md5: e2f2f81f367e14ca1f77a870bda2fe59 - sha256: 1bbf077688822993c39518056fb43d83ff0920eb42fef11e8714d2a298cc0f27 - build: h8d2909c_2 - arch: x86_64 - subdir: linux-64 - build_number: 2 - license: BSD-3-Clause - license_family: BSD - size: 27086 - timestamp: 1694604171830 - platform: linux-64 name: gcc_impl_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: - binutils_impl_linux-64 >=2.39 - - libgcc-devel_linux-64 12.3.0 h8bca6fd_105 - - libgcc-ng >=12.3.0 - - libgomp >=12.3.0 - - libsanitizer 12.3.0 h0f45ef3_5 - - libstdcxx-ng >=12.3.0 + - libgcc-devel_linux-64 13.2.0 ha9c7c90_105 + - libgcc-ng >=13.2.0 + - libgomp >=13.2.0 + - libsanitizer 13.2.0 h7e041cc_5 + - libstdcxx-ng >=13.2.0 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.3.0-he2b93b0_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.2.0-h338b0a0_5.conda hash: - md5: e89827619e73df59496c708b94f6f3d5 - sha256: a87826c55e6aa2ed5d17f267e6a583f7951658afaa4bf45cd5ba97f5583608b9 - build: he2b93b0_5 + md5: a6be13181cb66a78544b1d5f7bac97d0 + sha256: baab8f8b9af54959735e629cf6d5ec9378166aa4c68ba8dc98dc0a781d548409 + build: h338b0a0_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 51856676 - timestamp: 1706820019081 + size: 53318565 + timestamp: 1706819323755 - platform: linux-64 name: gcc_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: - binutils_linux-64 2.40 hbdbef99_2 - - gcc_impl_linux-64 12.3.0.* + - gcc_impl_linux-64 13.2.0.* - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-12.3.0-h76fc315_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.2.0-h112eaf3_2.conda hash: - md5: 11517e7b5c910c5b5d6985c0c7eb7f50 - sha256: 86f6db7399ec0362e4c4025939debbfebc8ad9ccef75e3c0e4069f85b149f24d - build: h76fc315_2 + md5: 7f77e02a151daf27b4a0e1b6c12f68b9 + sha256: c9b61357776b311b910bd696623ba435383314e67af6b2b329cde812caf7d369 + build: h112eaf3_2 arch: x86_64 subdir: linux-64 build_number: 2 license: BSD-3-Clause license_family: BSD - size: 30351 - timestamp: 1694604476800 + size: 30329 + timestamp: 1694604327022 - platform: linux-64 name: gettext version: 0.21.1 @@ -3451,69 +3294,49 @@ package: license_family: LGPL size: 1930741 timestamp: 1706155201555 -- platform: linux-64 - name: gxx - version: 12.3.0 - category: main - manager: conda - dependencies: - - gcc 12.3.0.* - - gxx_impl_linux-64 12.3.0.* - url: https://conda.anaconda.org/conda-forge/linux-64/gxx-12.3.0-h8d2909c_2.conda - hash: - md5: 673bac341be6b90ef9e8abae7e52ca46 - sha256: 5fd65768fb602fd21466831c96e7a2355a4df692507abbd481aa65a777151d85 - build: h8d2909c_2 - arch: x86_64 - subdir: linux-64 - build_number: 2 - license: BSD-3-Clause - license_family: BSD - size: 26539 - timestamp: 1694604501713 - platform: linux-64 name: gxx_impl_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: - - gcc_impl_linux-64 12.3.0 he2b93b0_5 - - libstdcxx-devel_linux-64 12.3.0 h8bca6fd_105 + - gcc_impl_linux-64 13.2.0 h338b0a0_5 + - libstdcxx-devel_linux-64 13.2.0 ha9c7c90_105 - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-12.3.0-he2b93b0_5.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.2.0-h338b0a0_5.conda hash: - md5: cddba8fd94e52012abea1caad722b9c2 - sha256: 69371a1e8ad718b033bc1c58743a395e06ad19d08a2ff97e264ed82fd3ccbd9c - build: he2b93b0_5 + md5: 88d0ccab114eb0e837725bd48cdddae5 + sha256: 9049d84fef7526e1dde8311acd2a592bf1d6f16453e68087c17d1bda01eb7867 + build: h338b0a0_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 12742481 - timestamp: 1706820327015 + size: 13582212 + timestamp: 1706819574801 - platform: linux-64 name: gxx_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: - binutils_linux-64 2.40 hbdbef99_2 - - gcc_linux-64 12.3.0 h76fc315_2 - - gxx_impl_linux-64 12.3.0.* + - gcc_linux-64 13.2.0 h112eaf3_2 + - gxx_impl_linux-64 13.2.0.* - sysroot_linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-12.3.0-h8a814eb_2.conda + url: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.2.0-hc53e3bf_2.conda hash: - md5: f517b1525e9783849bd56a5dc45a9960 - sha256: 9878771cf1316230150a795d213a2f1dd7dead07dc0bccafae20533d631d5e69 - build: h8a814eb_2 + md5: 7b8c35963707337e5f363c36f9bb5088 + sha256: a973936c18a9f44f9b04292ed3555dbc27a6802186fa653efb0aecdaac455708 + build: hc53e3bf_2 arch: x86_64 subdir: linux-64 build_number: 2 license: BSD-3-Clause license_family: BSD - size: 28640 - timestamp: 1694604524890 + size: 28665 + timestamp: 1694604366542 - platform: linux-64 name: h5netcdf version: 1.3.0 @@ -5080,29 +4903,6 @@ package: license_family: MIT size: 507632 timestamp: 1701648249706 -- platform: osx-64 - name: ld64 - version: '609' - category: main - manager: conda - dependencies: - - ld64_osx-64 609 ha20a434_16 - - libllvm16 >=16.0.6,<16.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/ld64-609-ha02d983_16.conda - hash: - md5: 6dfb00e6cab263fe598d48df153d3288 - sha256: 63cd1976379a7e0ff8b0e57b0e16b112a0077acce83af364251ab309128a227d - build: ha02d983_16 - arch: x86_64 - subdir: osx-64 - build_number: 16 - constrains: - - cctools_osx-64 973.0.1.* - - cctools 973.0.1.* - license: APSL-2.0 - license_family: Other - size: 19310 - timestamp: 1706798136816 - platform: osx-64 name: ld64_osx-64 version: '609' @@ -5110,26 +4910,26 @@ package: manager: conda dependencies: - libcxx - - libllvm16 >=16.0.6,<16.1.0a0 + - libllvm17 >=17.0.6,<17.1.0a0 - sigtool - tapi >=1100.0.11,<1101.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-609-ha20a434_16.conda + url: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-609-hd3532be_16.conda hash: - md5: db19844278d11471e5f4eddf50277f4f - sha256: eef540c95a418169617bdda1699d8f5441f819ed673d81f363c5c728a6273749 - build: ha20a434_16 + md5: 96e42c402c291cfd897d99e85163cd01 + sha256: 6c92d1aa6f7aebb2ed5050d2759e2240cd995b0b73086bbb39f5ecdea2914ece + build: hd3532be_16 arch: x86_64 subdir: osx-64 build_number: 16 constrains: - cctools_osx-64 973.0.1.* - - cctools 973.0.1.* - - clang >=16.0.6,<17.0a0 + - clang >=17.0.6,<18.0a0 - ld 609.* + - cctools 973.0.1.* license: APSL-2.0 license_family: Other - size: 1055029 - timestamp: 1706798033425 + size: 1049817 + timestamp: 1706797833035 - platform: linux-64 name: ld_impl_linux-64 version: '2.40' @@ -5730,25 +5530,25 @@ package: size: 148080 timestamp: 1701415503085 - platform: osx-64 - name: libclang-cpp16 - version: 16.0.6 + name: libclang-cpp17 + version: 17.0.6 category: main manager: conda dependencies: - libcxx >=16.0.6 - - libllvm16 >=16.0.6,<16.1.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp16-16.0.6-default_h7151d67_5.conda + - libllvm17 >=17.0.6,<17.1.0a0 + url: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp17-17.0.6-default_h6b1ee41_2.conda hash: - md5: 3189f83f21974fa2a9204f949d2aff18 - sha256: b308b6faee84c4646dca87221d8a0d1e293a8b9a2a1b83a4500abcd4dd6c8eca - build: default_h7151d67_5 + md5: 2df787005c3d38861e863fe54cfde28b + sha256: d3a3a66aa769d206148acb1cbdb9c4be53916c041532c334861f2387dccc56e8 + build: default_h6b1ee41_2 arch: x86_64 subdir: osx-64 - build_number: 5 + build_number: 2 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 12713468 - timestamp: 1706894023056 + size: 13178521 + timestamp: 1704279056417 - platform: linux-64 name: libclang13 version: 15.0.7 @@ -6163,23 +5963,23 @@ package: timestamp: 1687765514062 - platform: linux-64 name: libgcc-devel_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-12.3.0-h8bca6fd_105.conda + url: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.2.0-ha9c7c90_105.conda hash: - md5: e12ce6b051085b8f27e239f5e5f5bce5 - sha256: ed2dfc6d959dc27e7668439e1ad31b127b43e99f9a7e77a2d34b958fa797316b - build: h8bca6fd_105 + md5: 3bc29a967fee57e193ce51f51c598bca + sha256: 858029ad4d66869c533bb5a22e95e7c044ca66c61d6f403f10d9ae074a0e360e + build: ha9c7c90_105 arch: x86_64 subdir: linux-64 build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 2568967 - timestamp: 1706819720613 + size: 2578210 + timestamp: 1706819085946 - platform: linux-64 name: libgcc-ng version: 13.2.0 @@ -6627,8 +6427,8 @@ package: size: 33321457 timestamp: 1701375836233 - platform: osx-64 - name: libllvm16 - version: 16.0.6 + name: libllvm17 + version: 17.0.6 category: main manager: conda dependencies: @@ -6636,18 +6436,18 @@ package: - libxml2 >=2.12.1,<3.0.0a0 - libzlib >=1.2.13,<1.3.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/libllvm16-16.0.6-hbedff68_3.conda + url: https://conda.anaconda.org/conda-forge/osx-64/libllvm17-17.0.6-hbedff68_1.conda hash: - md5: 8fd56c0adc07a37f93bd44aa61a97c90 - sha256: ad848dc0bb02b1dbe54324ee5700b050a2e5f63c095f5229b2de58249a3e268e - build: hbedff68_3 + md5: fcd38f0553a99fa279fb66a5bfc2fb28 + sha256: 605460ecc4ccc04163d0b06c99693864e5bcba7a9f014a5263c9856195282265 + build: hbedff68_1 arch: x86_64 subdir: osx-64 - build_number: 3 + build_number: 1 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 25196932 - timestamp: 1701379796962 + size: 26306756 + timestamp: 1701378823527 - platform: linux-64 name: libnghttp2 version: 1.58.0 @@ -6901,23 +6701,23 @@ package: timestamp: 1702130001416 - platform: linux-64 name: libsanitizer - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: - - libgcc-ng >=12.3.0 - url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.3.0-h0f45ef3_5.conda + - libgcc-ng >=13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.2.0-h7e041cc_5.conda hash: - md5: 11d1ceacff40054d5a74b12975d76f20 - sha256: 70329cb8b0604273521cdae63520cb364a8d5477e156e65cdbd810984caeabee - build: h0f45ef3_5 + md5: 3f686300a92604d1bdff9a29dd4a6639 + sha256: 97ecdab7e4e96400d712c2d6ba2b7c30a97278e9f4470ea0ff36bf4f1447b3b9 + build: h7e041cc_5 arch: x86_64 subdir: linux-64 build_number: 5 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 3890717 - timestamp: 1706819904612 + size: 4114208 + timestamp: 1706819228913 - platform: linux-64 name: libsndfile version: 1.2.2 @@ -7067,23 +6867,23 @@ package: timestamp: 1685838242099 - platform: linux-64 name: libstdcxx-devel_linux-64 - version: 12.3.0 + version: 13.2.0 category: main manager: conda dependencies: [] - url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-12.3.0-h8bca6fd_105.conda + url: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.2.0-ha9c7c90_105.conda hash: - md5: b3c6062c84a8e172555ee104ea6a01ab - sha256: efcd4b4cba79cd0fb5a87757c7ca63171cf3b7b06446192364bae7defb50b94c - build: h8bca6fd_105 + md5: 66383205c2e1bdf013df52fa9e3e6763 + sha256: 67e999ee56481844ca4ce2e61132c5c16f3f00a05daa1d0ea4b2c684eea5de5a + build: ha9c7c90_105 arch: x86_64 subdir: linux-64 build_number: 105 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL noarch: generic - size: 11597918 - timestamp: 1706819775415 + size: 13020920 + timestamp: 1706819128553 - platform: linux-64 name: libstdcxx-ng version: 13.2.0 @@ -7649,31 +7449,31 @@ package: timestamp: 1701222810938 - platform: osx-64 name: llvm-tools - version: 16.0.6 + version: 17.0.6 category: main manager: conda dependencies: - - libllvm16 16.0.6 hbedff68_3 + - libllvm17 17.0.6 hbedff68_1 - libxml2 >=2.12.1,<3.0.0a0 - libzlib >=1.2.13,<1.3.0a0 - zstd >=1.5.5,<1.6.0a0 - url: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-16.0.6-hbedff68_3.conda + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-17.0.6-hbedff68_1.conda hash: - md5: e9356b0807462e8f84c1384a8da539a5 - sha256: dff3ca83c6945f020ee6d3c62ddb3ed175ae8a357be3689a8836bcfe25ad9882 - build: hbedff68_3 + md5: 4260f86b3dd201ad7ea758d783cd5613 + sha256: 2380e9ac72aba8ef351ec13c9d5b1b233057c70bf4b9b3cea0b3f5bfb5a4e211 + build: hbedff68_1 arch: x86_64 subdir: osx-64 - build_number: 3 + build_number: 1 constrains: - - llvmdev 16.0.6 - - clang 16.0.6.* - - clang-tools 16.0.6.* - - llvm 16.0.6.* + - llvm 17.0.6 + - clang 17.0.6 + - clang-tools 17.0.6 + - llvmdev 17.0.6 license: Apache-2.0 WITH LLVM-exception license_family: Apache - size: 22221159 - timestamp: 1701379965425 + size: 23219165 + timestamp: 1701378990823 - platform: linux-64 name: lz4-c version: 1.9.4 @@ -13743,44 +13543,6 @@ package: license_family: BSD size: 16988 timestamp: 1702511261442 -- platform: win-64 - name: vs2019_win-64 - version: 19.29.30139 - category: main - manager: conda - dependencies: - - vswhere - url: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-he1865b1_18.conda - hash: - md5: 6d9d317010ece223fc46a69360d0eb84 - sha256: b8f5128fc767fc04b48ec10df7ac6eea5d07df0efa2d91fff6d872e3dcde9029 - build: he1865b1_18 - arch: x86_64 - subdir: win-64 - build_number: 18 - track_features: vc14 - license: BSD-3-Clause - license_family: BSD - size: 19488 - timestamp: 1702511289992 -- platform: win-64 - name: vswhere - version: 3.1.4 - category: main - manager: conda - dependencies: [] - url: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.4-h57928b3_0.conda - hash: - md5: b1d1d6a1f874d8c93a57b5efece52f03 - sha256: 553c41fc1a883415a39444313f8d99236685529776fdd04e8d97288b73496002 - build: h57928b3_0 - arch: x86_64 - subdir: win-64 - build_number: 0 - license: MIT - license_family: MIT - size: 218421 - timestamp: 1682376911339 - platform: linux-64 name: wcwidth version: 0.2.13 diff --git a/pixi.toml b/pixi.toml index 3d03b81..3da865e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -43,7 +43,6 @@ cython = ">=3.0.8,<3.1" fftw = ">=3.3.10,<3.4" pkg-config = ">=0.29.2,<0.30" pyfftw = ">=0.13.1,<0.14" -cxx-compiler = ">=1.7.0,<1.8" [pypi-dependencies] pymech = "*" diff --git a/plugins/fluidfft-builder/pyproject.toml b/plugins/fluidfft-builder/pyproject.toml index 03662f7..fe42b1a 100644 --- a/plugins/fluidfft-builder/pyproject.toml +++ b/plugins/fluidfft-builder/pyproject.toml @@ -3,7 +3,7 @@ requires = ["flit_core >=3.2,<4"] build-backend = "flit_core.buildapi" [project] -name = "fluidfft_builder" +name = "fluidfft-builder" version = "0.0.1" description = "Fluidfft plugin dependencies" authors = [{name = "Pierre Augier", email = "pierre.augier@univ-grenoble-alpes.fr"}] diff --git a/plugins/fluidfft-fftw/pyproject.toml b/plugins/fluidfft-fftw/pyproject.toml index 4f0317b..beb391a 100644 --- a/plugins/fluidfft-fftw/pyproject.toml +++ b/plugins/fluidfft-fftw/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "transonic>=0.6.1" + "meson-python", "numpy", "fluidfft-builder>=0.0.1", "cython", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-fftwmpi/pyproject.toml b/plugins/fluidfft-fftwmpi/pyproject.toml index 5bddf50..321c320 100644 --- a/plugins/fluidfft-fftwmpi/pyproject.toml +++ b/plugins/fluidfft-fftwmpi/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" + "meson-python", "numpy", "fluidfft-builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/plugins/fluidfft-mpi_with_fftw/pyproject.toml b/plugins/fluidfft-mpi_with_fftw/pyproject.toml index 2c9a57f..99a5416 100644 --- a/plugins/fluidfft-mpi_with_fftw/pyproject.toml +++ b/plugins/fluidfft-mpi_with_fftw/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "meson-python", "numpy", "fluidfft_builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" + "meson-python", "numpy", "fluidfft-builder>=0.0.1", "cython", "mpi4py", "transonic>=0.6.1" ] build-backend = 'mesonpy' diff --git a/pyproject.toml b/pyproject.toml index 441f731..b399dd3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ build = ["meson-python", "ninja", "numpy", "transonic>=0.6.0", "pythran>=0.9.7"] test = [ "pytest", - "coverage", + "coverage[toml]", "pytest-cov", "cython", # needed at run time for coverage # needed to build the plugins @@ -97,3 +97,43 @@ black = 'black -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|_ black_check = 'black --check -l 82 src doc plugins tests --exclude "/(__pythran__|__python__|__numba__|build|doc/_build|\.ipynb_checkpoints/*)/"' lint = {shell="pylint -rn --rcfile=pylintrc --jobs=$(nproc) src doc tests plugins --exit-zero"} validate_code = {composite = ["black_check", "lint"]} + + +[tool.coverage.run] +source = [ + "./src/fluidfft", + "./plugins/fluidfft-fftw", + "./plugins/fluidfft-fftwmpi", + "./plugins/fluidfft-mpi_with_fftw", +] +data_file = ".coverage/coverage" +omit = [ + "*/try_*.py", + "*/_old_*.py", + "**/__pythran__/*.py", + "**/__python__/*.py", + "**/__numba__/*.py", + "src/fluidfft/fft2d/fake_mod_fft2d_for_doc.py", + "src/fluidfft/fft3d/fake_mod_fft3d_for_doc.py", +] +plugins = ["Cython.Coverage"] + +[tool.coverage.report] +show_missing = true +exclude_lines = [ + "if __name__ == .__main__.:", + "if \"sphinx\" in sys.modules:", + "raise ValueError", + "raise NotImplementedError", + "raise ImportError", + "except KeyError:", + "except ImportError:", + "except AttributeError:", + "except NotImplementedError:", +] + +[tool.coverage.html] +directory = ".coverage" + +[tool.coverage.xml] +output = ".coverage/coverage.xml" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 60ca81a..0000000 --- a/setup.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[flake8] -ignore = E501,E225,E226,E303,E201,E202,E203,W503 - -[coverage:run] -source = - ./src/fluidfft -data_file = .coverage/coverage -omit = - */test*.py -plugins = Cython.Coverage - -[coverage:report] -show_missing = True -exclude_lines = - raise ValueError - if __name__ == '__main__': - warnings.warn - raise NotImplementedError - except ValueError: - -[coverage:html] -directory = .coverage - -[coverage:xml] -output = .coverage/coverage.xml diff --git a/tests/test_2d.py b/tests/test_2d.py index d16596b..8fba2ef 100644 --- a/tests/test_2d.py +++ b/tests/test_2d.py @@ -1,5 +1,4 @@ import unittest -import traceback from fluiddyn.util import mpi @@ -7,12 +6,6 @@ from fluidfft.fft2d import get_classes_seq, get_classes_mpi from fluidfft.fft2d.testing import complete_test_class_2d -try: - import fluidfft_fftw.fft2d.with_fftw2d -except ImportError: - # If this one does not work it is a bad sign so we want to know what happened. - traceback.print_exc() - def test_get_classes(): get_classes_seq() @@ -23,7 +16,7 @@ def test_get_classes(): nb_proc = mpi.nb_proc -methods_seq = ["fftw1d", "fftw2d", "pyfftw"] +methods_seq = ["pyfftw"] methods_seq = ["fft2d.with_" + method for method in methods_seq] classes_seq = { method: import_fft_class(method, raise_import_error=False) @@ -41,15 +34,10 @@ class Tests2D(unittest.TestCase): pass -if rank == 0: - if nb_proc == 1 and len(classes_seq) == 0: - raise RuntimeError( - "ImportError for all sequential classes. Nothing is working!" - ) - - for method, cls in classes_seq.items(): - complete_test_class_2d(method, Tests2D, cls=cls) - +if nb_proc == 1 and len(classes_seq) == 0: + raise RuntimeError( + "ImportError for all sequential classes. Nothing is working!" + ) -# TODO: understand what was done here before! -# complete_test_class_2d("None", Tests2D, cls=False) +for method, cls in classes_seq.items(): + complete_test_class_2d(method, Tests2D, cls=cls) diff --git a/tests/test_3d.py b/tests/test_3d.py index 7bd1c47..f541a99 100644 --- a/tests/test_3d.py +++ b/tests/test_3d.py @@ -1,18 +1,9 @@ import unittest -import traceback - -from fluiddyn.util import mpi from fluidfft import import_fft_class from fluidfft.fft3d import get_classes_seq, get_classes_mpi from fluidfft.fft3d.testing import complete_test_class_3d -try: - import fluidfft_fftw.fft3d.with_fftw3d -except ImportError: - # If this one does not work it is a bad sign so we want to know what appends. - traceback.print_exc() - def test_get_classes(): get_classes_seq() @@ -36,14 +27,10 @@ class Tests3D(unittest.TestCase): pass -if mpi.nb_proc == 1: - if len(classes_seq) == 0: - raise RuntimeError( - "ImportError for all sequential classes. Nothing is working!" - ) - - for method, cls in classes_seq.items(): - complete_test_class_3d(method, Tests3D, cls=cls) +if len(classes_seq) == 0: + raise RuntimeError( + "ImportError for all sequential classes. Nothing is working!" + ) - # TODO: understand what was done here before! - # complete_class("None", None) +for method, cls in classes_seq.items(): + complete_test_class_3d(method, Tests3D, cls=cls) From ee1a61a1a51be99dc4c66265dd91404401597f42 Mon Sep 17 00:00:00 2001 From: paugier Date: Mon, 5 Feb 2024 22:10:40 +0100 Subject: [PATCH 36/36] Small fixes before merge --- .gitlab-ci.yml | 1 - Makefile | 17 ----------- doc/index.md | 3 +- doc/install.md | 8 +++++ doc/plugins.md | 1 + pixi.toml | 1 - plugins/README.md | 30 +++++++++++++++---- plugins/fluidfft-fftw/meson.build | 12 ++++++-- .../src/fluidfft_fftw/fft2d/meson.build | 2 +- plugins/fluidfft-fftwmpi/meson.build | 12 ++++++-- plugins/fluidfft-mpi_with_fftw/meson.build | 12 ++++++-- plugins/pure_cpp/2d/run_benchs.py | 16 ++++------ 12 files changed, 67 insertions(+), 48 deletions(-) create mode 120000 doc/plugins.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb3ccc0..0a21c7d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -96,7 +96,6 @@ tests_mpi: - job: "image:build" optional: true script: - - ls /usr/lib/x86_64-linux-gnu/libfftw3* - nox -s "tests(with_cov=True, with_mpi=True)" diff --git a/Makefile b/Makefile index 1290196..bf4ce4c 100644 --- a/Makefile +++ b/Makefile @@ -37,23 +37,6 @@ tests_mpi: tests_mpi4: mpirun -np 4 pytest -s tests -_tests_coverage: - mkdir -p .coverage - coverage run -p -m pytest -s tests - TRANSONIC_NO_REPLACE=1 coverage run -p -m pytest -s tests - # Using TRANSONIC_NO_REPLACE with mpirun in docker can block the tests - mpirun -np 2 --oversubscribe coverage run -p -m unittest discover tests - -_report_coverage: - coverage combine - coverage report - coverage html - coverage xml - @echo "Code coverage analysis complete. View detailed report:" - @echo "file://${PWD}/.coverage/index.html" - -coverage: _tests_coverage _report_coverage - clang-format: find src_cpp/ -iname '*.h' -o -iname '*.cpp' | xargs clang-format -i diff --git a/doc/index.md b/doc/index.md index c6896ea..b622b51 100644 --- a/doc/index.md +++ b/doc/index.md @@ -24,8 +24,6 @@ perform Fast Fourier Transform (FFT) with different libraries, in particular - [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 @@ -110,6 +108,7 @@ journal = {Journal of Open Research Software} overview install +plugins tutorials examples bench diff --git a/doc/install.md b/doc/install.md index a636fc3..f2e42bc 100644 --- a/doc/install.md +++ b/doc/install.md @@ -2,6 +2,14 @@ # Installation and advice +```{danger} + +We are working on a very deep reorganization of Fluidfft. Fluidfft 0.4.0, which +should be released in the beginning of 2024, will work with plugins. This +documentation is valid for Fluidfft <= 0.3.5. The new documentation should come soon. + +``` + ## Installation with pip To install fluidfft, you need a recent Python (>= 3.6) and a C++11 compiler diff --git a/doc/plugins.md b/doc/plugins.md new file mode 120000 index 0000000..250ab34 --- /dev/null +++ b/doc/plugins.md @@ -0,0 +1 @@ +../plugins/README.md \ No newline at end of file diff --git a/pixi.toml b/pixi.toml index 3da865e..70e670f 100644 --- a/pixi.toml +++ b/pixi.toml @@ -11,7 +11,6 @@ platforms = ["linux-64", "win-64", "osx-64"] [tasks] # use as `pixi run install-editable` -# install-dependencies = "pixi install && pip install -e ./lib && pip install ../transonic" install-dependencies = "pixi install && pip install -e plugins/fluidfft-builder" install-editable = {cmd = "pip install -e . -v --no-build-isolation --no-deps", depends_on = ["install-dependencies"]} install-fftw = "pip install -e plugins/fluidfft-fftw --no-build-isolation -v" diff --git a/plugins/README.md b/plugins/README.md index 0f70039..439a245 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -1,14 +1,32 @@ # Fluidfft plugins -Directory containing the plugins, i.e. Python packages declaring the -`fluidfft.plugins` entry point. +The main Fluidfft package only contains pure Python FFT classes using other +packages to perform the transforms. -We should have +The classes using in the background C++ Fluidfft classes are implemented in +Fluidfft plugins. A plugin is a small Python packages defining entry points +`fluidfft.plugins`. + +For example, the plugin `fluidfft-fftw` defines 3 sequential methods declared +in its `pyproject.toml` file like this: + +```toml +[project.entry-points."fluidfft.plugins"] + +"fft2d.with_fftw1d" = "fluidfft_fftw.fft2d.with_fftw1d" +"fft2d.with_fftw2d" = "fluidfft_fftw.fft2d.with_fftw2d" +"fft3d.with_fftw3d" = "fluidfft_fftw.fft3d.with_fftw3d" +``` + +The following plugins are implemented in Fluidfft repository: -- [x] fluidfft-mpi4pyfft (cannot be tested because mpi4py-fft installation fails) - [x] fluidfft-fftw -- [x] fluidfft-mpi_with_fftw -- [x] fluidfft-fftwmpi +- [x] fluidfft-mpi_with_fftw (parallel methods using the sequential FFTW3 library) +- [x] fluidfft-fftwmpi (methods using the library `libfftw_mpi`) +- [x] fluidfft-mpi4pyfft (cannot be tested because mpi4py-fft installation fails) + +We plan to soon also have: + - [ ] fluidfft-p3dfft - [ ] fluidfft-pfft - [ ] fluidfft-pyvkfft (https://pyvkfft.readthedocs.io) diff --git a/plugins/fluidfft-fftw/meson.build b/plugins/fluidfft-fftw/meson.build index 0d52e8f..9e9e851 100644 --- a/plugins/fluidfft-fftw/meson.build +++ b/plugins/fluidfft-fftw/meson.build @@ -15,7 +15,9 @@ py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() -incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +incdir_numpy = run_command( + 'transonic-get-include', 'numpy', check: true +).stdout().strip() inc_np = include_directories(incdir_numpy) np_dep = declare_dependency(include_directories: inc_np) @@ -23,9 +25,13 @@ fftw_dep = dependency('fftw3', static: false) dependencies = [fftw_dep, np_dep] -include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() +include_path_fluidfft_builder = run_command( + 'fluidfft-builder-print-include-dir', check: true +).stdout().strip() -include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +include_path_cy = run_command( + 'fluidfft-builder-print-include-dir-cython', check: true +).stdout().strip() add_project_arguments('-I', include_path_cy, language : 'cython') subdir('src/fluidfft_fftw') diff --git a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build index a300381..b7f41bc 100644 --- a/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build +++ b/plugins/fluidfft-fftw/src/fluidfft_fftw/fft2d/meson.build @@ -33,4 +33,4 @@ foreach dim : ['1', '2'] subdir: 'fluidfft_fftw/fft2d', ) -endforeach \ No newline at end of file +endforeach diff --git a/plugins/fluidfft-fftwmpi/meson.build b/plugins/fluidfft-fftwmpi/meson.build index 95e16de..7c23c3a 100644 --- a/plugins/fluidfft-fftwmpi/meson.build +++ b/plugins/fluidfft-fftwmpi/meson.build @@ -24,16 +24,22 @@ py_mod = import('python') py = py_mod.find_installation('python3', pure: false) py_dep = py.dependency() -incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +incdir_numpy = run_command( + 'transonic-get-include', 'numpy', check: true +).stdout().strip() inc_np = include_directories(incdir_numpy) np_dep = declare_dependency(include_directories: inc_np) dependencies = [fftw_dep, mpi_dep, fftwmpi_dep, np_dep] link_args = ['-lfftw3_mpi'] -include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() +include_path_fluidfft_builder = run_command( + 'fluidfft-builder-print-include-dir', check: true +).stdout().strip() -include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +include_path_cy = run_command( + 'fluidfft-builder-print-include-dir-cython', check: true +).stdout().strip() add_project_arguments('-I', include_path_cy, language : 'cython') subdir('src/fluidfft_fftwmpi') diff --git a/plugins/fluidfft-mpi_with_fftw/meson.build b/plugins/fluidfft-mpi_with_fftw/meson.build index 1fabb10..c4238c3 100644 --- a/plugins/fluidfft-mpi_with_fftw/meson.build +++ b/plugins/fluidfft-mpi_with_fftw/meson.build @@ -18,15 +18,21 @@ py_dep = py.dependency() fftw_dep = dependency('fftw3', static: false) mpi_dep = dependency('mpi', language: 'cpp') -incdir_numpy = run_command('transonic-get-include', 'numpy', check: true).stdout().strip() +incdir_numpy = run_command( + 'transonic-get-include', 'numpy', check: true +).stdout().strip() inc_np = include_directories(incdir_numpy) np_dep = declare_dependency(include_directories: inc_np) dependencies = [fftw_dep, mpi_dep, np_dep] -include_path_fluidfft_builder = run_command('fluidfft-builder-print-include-dir').stdout().strip() +include_path_fluidfft_builder = run_command( + 'fluidfft-builder-print-include-dir', check: true +).stdout().strip() -include_path_cy = run_command('fluidfft-builder-print-include-dir-cython').stdout().strip() +include_path_cy = run_command( + 'fluidfft-builder-print-include-dir-cython', check: true +).stdout().strip() add_project_arguments('-I', include_path_cy, language : 'cython') subdir('src/fluidfft_mpi_with_fftw') diff --git a/plugins/pure_cpp/2d/run_benchs.py b/plugins/pure_cpp/2d/run_benchs.py index f6cad39..1ac77ba 100644 --- a/plugins/pure_cpp/2d/run_benchs.py +++ b/plugins/pure_cpp/2d/run_benchs.py @@ -72,22 +72,16 @@ def call_bash(commands): for cls in classes: src += ( - "\nnb_procs['" - + cls - + "'] = " + f"\nnb_procs['{cls}'] = " + repr(np.array(nb_procs[cls])) - + "\ntimes_fft['" - + cls - + "'] = " + + f"\ntimes_fft['{cls}'] = " + repr(np.array(times_fft[cls])) - + "\ntimes_ifft['" - + cls - + "'] = " + + "\ntimes_ifft['{cls}'] = " + repr(np.array(times_ifft[cls])) ) if not os.path.exists(output_dir): os.mkdir(output_dir) -with open(output_dir + "/bench.py", "w") as f: - f.write(src + "\n") +with open(output_dir + "/bench.py", "w", encoding="utf8") as file: + file.write(src + "\n")