@@ -42,156 +42,6 @@ build-backend = "mesonpy"
4242[tool .meson-python .args ]
4343setup  = [' --vsenv'  ]
4444
45- [tool .pixi .project ]
46- channels  = [" conda-forge"  ]
47- platforms  = [" win-64"  , " linux-64"  , " osx-64"  , " osx-arm64"  , " linux-aarch64"  ]
48- 
49- [tool .pixi .dependencies ]
50- python  = " >=3.10" 
51- scikit-learn  = " >=1.7.0,!=1.7.1" 
52- 
53- [tool .pixi .pypi-dependencies ]
54- fastcan  = { path  = " ."  , editable  = true  }
55- 
56- [tool .pixi .build-dependencies ]
57- cython  = " >=3.1.0" 
58- meson-python  = " >=0.18.0" 
59- 
60- [tool .pixi .feature .docs .dependencies ]
61- pydata-sphinx-theme  = " *" 
62- matplotlib  = " *" 
63- pandas  = " *" 
64- sphinx-gallery  = " *" 
65- sphinx-design  = " *" 
66- sphinxcontrib-plantuml  = " *" 
67- jupyterlite-sphinx  = " *" 
68- jupyterlite-xeus  = " *" 
69- pip  = " *"   #  Required by xeus environment creation
70- graphviz  = " <13" 
71- 
72- [tool .pixi .feature .docs .target .win-64 .dependencies ]
73- plantuml  = " *" 
74- 
75- [tool .pixi .feature .docs .target .linux-64 .dependencies ]
76- plantuml  = " *" 
77- 
78- [tool .pixi .feature .docs .target .osx-arm64 .dependencies ]
79- plantuml  = " *" 
80- 
81- [tool .pixi .feature .docs .target .osx-64 .dependencies ]
82- plantuml  = " *" 
83- 
84- [tool .pixi .feature .wasm .dependencies ]
85- pip  = " *" 
86- pyodide-build  = " *" 
87- prettier  = " *" 
88- 
89- [tool .pixi .feature .asv .dependencies ]
90- asv  = " *" 
91- libmambapy  = " *" 
92- conda-build  = " *" 
93- 
94- [tool .pixi .feature .jupyter .dependencies ]
95- notebook  = " *" 
96- matplotlib  = " *" 
97- pyarrow  = " *" 
98- 
99- [tool .pixi .feature .test .dependencies ]
100- pytest  = " *" 
101- pytest-cov  = " *" 
102- pandas  = " *" 
103- 
104- [tool .pixi .feature .static .dependencies ]
105- #  Static analysis tools
106- ruff  = " *" 
107- cython-lint  = " *" 
108- mypy  = " *" 
109- codespell  = " *" 
110- 
111- 
112- [tool .pixi .feature .build .dependencies ]
113- python-build  = " *" 
114- pip  = " *" 
115- 
116- [tool .pixi .feature .nogil .dependencies ]
117- python-freethreading  = " *" 
118- 
119- [tool .pixi .feature .nogil .pypi-dependencies ]
120- scikit-learn  = " >=1.7.0,!=1.7.1" 
121- fastcan  = { path  = " ."  , editable  = true  }
122- 
123- [tool .pixi .feature .nogil .build-dependencies ]
124- cython  = " >=3.1.0" 
125- meson-python  = " >=0.18.0" 
126- 
127- [tool .pixi .target .osx-64 .build-dependencies ]
128- compilers  = " *" 
129- 
130- [tool .pixi .target .osx-arm64 .build-dependencies ]
131- compilers  = " *" 
132- 
133- [tool .pixi .tasks ]
134- time-h  = " python -m timeit -n 5 -s 'import numpy as np; from fastcan import FastCan; X = np.random.rand(3000, 100); y = np.random.rand(3000, 20)' 's = FastCan(100, verbose=0).fit(X, y)'" 
135- time-eta  = " python -m timeit -n 5 -s 'import numpy as np; from fastcan import FastCan; X = np.random.rand(3000, 100); y = np.random.rand(3000, 20)' 's = FastCan(100, eta=True, verbose=0).fit(X, y)'" 
136- profile-minibatch  = { cmd  = ''' python -c "import cProfile; import numpy as np; from fastcan import minibatch; X = np.random.rand(100, 3000); y = np.random.rand(100, 20); cProfile.run('minibatch(X, y, 1000, 10, verbose=0)', sort='{{ SORT }}')"'''  , args  = [{ arg  = " SORT"  , default  = " cumtime"   }] }
137- time-narx  = ''' python -m timeit -n 1 -s "import numpy as np; from fastcan.narx import make_narx; rng = np.random.default_rng(5); X = rng.random((1000, 10)); y = rng.random((1000, 2)); m = make_narx(X, y, 10, max_delay=2, poly_degree=2, verbose=0)" "m.fit(X, y, coef_init='one_step_ahead', verbose=1)"''' 
138- profile-narx  = { cmd  = ''' python -c "import cProfile; import numpy as np; from fastcan.narx import make_narx; rng = np.random.default_rng(8); X = rng.random((3000, 3)); y = rng.random((3000, 3)); m = make_narx(X, y, 10, max_delay=10, poly_degree=2, verbose=0); cProfile.run('m.fit(X, y, coef_init=[0]*33)', sort='{{ SORT }}')"'''  , args  = [{ arg  = " SORT"  , default  = " tottime"   }] }
139- 
140- [tool .pixi .feature .asv .tasks ]
141- asv-build  = { cmd  = " python -m asv machine --machine {{ MACHINE }} --yes && python -m asv run --show-stderr -v --machine {{ MACHINE }} {{ EXTRA_ARGS }}"  , cwd  = " asv_benchmarks"  , args  = [{ arg  = " MACHINE"  , default  = " MacOS-M1"   }, { arg  = " EXTRA_ARGS"  , default  = " "   }] }
142- asv-publish  = { cmd  = " python -m asv publish"  , cwd  = " asv_benchmarks"   }
143- asv-preview  = { cmd  = " python -m asv preview"  , cwd  = " asv_benchmarks"  , depends-on  = [" asv-publish"  ] }
144- 
145- [tool .pixi .feature .test .tasks ]
146- test  = " pytest" 
147- test-coverage  = { cmd  = " rm -rf .coverage && pytest --cov-report {{ FMT }} --cov={{ PACKAGE }}"  , args  = [{ arg  = " FMT"  , default  = " html"   }, { arg  = " PACKAGE"  , default  = " fastcan"   }] }
148- 
149- [tool .pixi .feature .build .tasks ]
150- build-wheel  = " rm -rf dist && python -m build -wnx -Cinstall-args=--tags=runtime,python-runtime,devel" 
151- build-sdist  = " rm -rf dist && python -m build --sdist" 
152- rebuild  = " rm -rf build && pip install --no-deps --force-reinstall -e ." 
153- 
154- [tool .pixi .feature .static .tasks ]
155- fmt  = " ruff format" 
156- lint  = " ruff check . --fix" 
157- cython-lint  = { cmd  = " cython-lint ."  , cwd  = " fastcan"   }
158- type  = { cmd  = " mypy . --ignore-missing-imports"  , cwd  = " fastcan"   }
159- spell  = " codespell fastcan" 
160- 
161- [tool .pixi .feature .docs .tasks ]
162- doc  = { cmd  = " {{ SPHINXBUILD }} -M {{ CMD }} {{ SOURCEDIR }} {{ BUILDDIR }} {{ SPHINXOPTS }} --fail-on-warning"  , cwd  = " doc"  , args  = [{ arg  = " SPHINXBUILD"  , default  = " sphinx-build"   }, { arg  = " CMD"  , default  = " html"   }, { arg  = " SOURCEDIR"  , default  = " ."   }, { arg  = " BUILDDIR"  , default  = " _build"   }, { arg  = " SPHINXOPTS"  , default  = " "   }] }
163- doc-clean  = { cmd  = " rm -rf {{ BUILDDIR }} generated auto_examples jupyterlite_contents .jupyterlite.doit.db _contents _output .cache"  , cwd  = " doc"  , args  = [{ arg  = " BUILDDIR"  , default  = " _build"   }] }
164- doc-deploy  = { cmd  = " python -m http.server"   , cwd  = " doc/_build/html"   }
165- doc-plantuml  = { cmd  = " plantuml -tsvg {{ SOURCE }} -o {{ OUTPUT }}"  , cwd  = " doc"  , args  = [{ arg  = " SOURCE"  , default  = " diagram.puml"   }, { arg  = " OUTPUT"  , default  = " _build"   }] }
166- #  The setting (pixi config set --local run-post-link-scripts insecure) is required before install the environment,
167- #  otherwise graphviz will not generate its plugin config. See:
168- #  https://github.com/prefix-dev/pixi/blob/8aad97b5ac6482cdf0d3167fdaf0cb26328cc9c4/CHANGELOG.md?plain=1#L899
169- doc-plantuml-test  = " plantuml -testdot" 
170- doc-jupyterlite-debug  = { cmd  = " jupyter-lite build --debug --output-dir {{ OUTPUT }}"  , cwd  = " doc"  , args  = [{ arg  = " OUTPUT"  , default  = " _output"   }] }
171- 
172- 
173- [tool .pixi .feature .nogil .tasks ]
174- nogil-h  = " python -Xgil=0 -m timeit -n 5 -s 'import numpy as np; from fastcan import FastCan; X = np.random.rand(3000, 100); y = np.random.rand(3000, 20)' 's = FastCan(100, verbose=0).fit(X, y)'" 
175- nogil-eta  = " python -Xgil=0 -m timeit -n 5 -s 'import numpy as np; from fastcan import FastCan; X = np.random.rand(3000, 100); y = np.random.rand(3000, 20)' 's = FastCan(100, eta=True, verbose=0).fit(X, y)'" 
176- 
177- [tool .pixi .feature .wasm .tasks ]
178- emsdk-clone  = " bash -c '[ -d emsdk ] || git clone https://github.com/emscripten-core/emsdk.git emsdk'" 
179- pyodide-compatible  = " pyodide xbuildenv search -a" 
180- pyodide-toolchain  = { cmd  = " LATEST_COMPATIBLE=$(pyodide xbuildenv search -a | grep '│ Yes' | head -n 1 | awk -F '│' '{print $2}' | xargs) && pyodide xbuildenv install $LATEST_COMPATIBLE"   }
181- emsdk-setup  = { cmd  = " PYODIDE_EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version) && ./emsdk install $PYODIDE_EMSCRIPTEN_VERSION && ./emsdk activate $PYODIDE_EMSCRIPTEN_VERSION"  , cwd  = " emsdk"  , depends-on  = [" emsdk-clone"  , " pyodide-toolchain"  ] }
182- pyodide-build  = { cmd  = " bash -c 'source emsdk/emsdk_env.sh && pyodide build'"  , depends-on  = [" emsdk-setup"  ] }
183- pyodide-create-recipe  = " rm -rf packages && pyodide skeleton pypi fastcan" 
184- pyodide-build-recipe  = { cmd  = " rm -rf dist && bash -c 'source emsdk/emsdk_env.sh && pyodide build-recipes fastcan --install'"  , depends-on  = [" emsdk-setup"  ] }
185- pyodide-download  = ''' bash -c "[ -d pyodide ] || (LATEST_TAG=$(curl -s https://api.github.com/repos/pyodide/pyodide/releases/latest | grep \"tag_name\" | cut -d \" -f4) && curl -L https://github.com/pyodide/pyodide/releases/download/${LATEST_TAG}/pyodide-${LATEST_TAG}.tar.bz2 | tar -xjf -)"''' 
186- pyodide-test-recipe  = { cmd  = " mv ../dist/* . && python -m http.server --directory ."  , cwd  = " pyodide"  , depends-on  = [" pyodide-download"  , " pyodide-build-recipe"  ] }
187- 
188- [tool .pixi .environments ]
189- dev  = [" test"  , " build"  , " jupyter"  , " asv"  ]
190- docs  = [" docs"  ]
191- static  = { features  = [" static"  ], no-default-feature  = true  }
192- nogil  = { features  = [" nogil"  ], no-default-feature  = true  }
193- wasm  = { features  = [" wasm"  ], no-default-feature  = true  }
194- 
19545[tool .pytest .ini_options ]
19646testpaths  = [ 
19747    " ./tests"  ,
0 commit comments