diff --git a/fastcan/narx.py b/fastcan/narx.py index 164bfd6..ab57808 100644 --- a/fastcan/narx.py +++ b/fastcan/narx.py @@ -353,9 +353,7 @@ def _validate_feat_delay_ids( ) # Check if any row of feat_ids only contains -1 if np.all(feat_ids_ == -1, axis=1).any(): - raise ValueError( - "`feat_ids` should not contain rows that only have -1." - ) + raise ValueError("`feat_ids` should not contain rows that only have -1.") # Validate delay_ids delay_ids_ = check_array( delay_ids, diff --git a/pixi.lock b/pixi.lock index 39d3b4b..7394a03 100644 --- a/pixi.lock +++ b/pixi.lock @@ -1262,11 +1262,11 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/black-25.1.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py313h5dec8f5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cython-lint-0.16.6-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda @@ -1275,25 +1275,24 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h767d61c_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-h4bc722e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.1-hee588c1_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-h8f9b012_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.15.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.15.0-py313h536fd9c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.7-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py313h536fd9c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.13.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.10-h9e4cc4f_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-6_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.13-6_cp313.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.11.5-py312h286b59f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.11.5-py313h22842b3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tokenize-rt-6.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda @@ -1364,30 +1363,29 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda win-64: - - conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/black-25.1.0-py312h2e8e312_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh7428d3b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py313h11c7957_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py312h890cc4b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cython-lint-0.16.6-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.0-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.49.1-h67fdade_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.15.0-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.15.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.0-ha4e3fda_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.7-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.0.0-py313ha7868ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.0.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycodestyle-2.13.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.3-h261c0b1_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.13-6_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.11.5-py313h9f3c1d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.10-h3f84c4b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-6_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.11.5-py312h9211799_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tokenize-rt-6.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda @@ -1775,21 +1773,6 @@ packages: - pkg:pypi/beautifulsoup4?source=compressed-mapping size: 145482 timestamp: 1738740460562 -- conda: https://conda.anaconda.org/conda-forge/linux-64/black-25.1.0-py312h7900ff3_0.conda - sha256: a115a0984455ee031ac90fc533ab719fd5f5e3803930ccf0a934fb7416d568ef - md5: 986a60de52eec10b36c61bb3890858ff - depends: - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9 - - platformdirs >=2 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: MIT - license_family: MIT - size: 394760 - timestamp: 1738616131766 - conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda sha256: c68f110cd491dc839a69e340930862e54c00fb02cede5f1831fcf8a253bd68d2 md5: b9b0c42e7316aa6043bdfd49883955b8 @@ -1820,6 +1803,21 @@ packages: license_family: MIT size: 400095 timestamp: 1738616517582 +- conda: https://conda.anaconda.org/conda-forge/win-64/black-25.1.0-py312h2e8e312_0.conda + sha256: 5e06c913b75eab309c6c10a55a5db8d0de9326ed0c7502aa4b6ecbed17c717f3 + md5: 4a56e5f993e44ed525b80f4645525569 + depends: + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9 + - platformdirs >=2 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 418294 + timestamp: 1738616484152 - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda sha256: a05971bb80cca50ce9977aad3f7fc053e54ea7d5321523efc7b9a6e12901d3cd md5: f0b4c8e370446ef89797608d60a564b3 @@ -2810,19 +2808,6 @@ packages: name: cython version: 3.1.0b1 requires_python: '>=3.8' -- conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py312h2614dfc_0.conda - sha256: de815476da537b911e2ceeb7f76b445d0c76b3d5fad35600ed28bc8d19302127 - md5: e5d2a28866ee990a340bde1eabde587a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: Apache-2.0 - license_family: APACHE - size: 3766553 - timestamp: 1739228870146 - conda: https://conda.anaconda.org/conda-forge/linux-64/cython-3.0.12-py313h5dec8f5_0.conda sha256: 8341920c1a53a418a359c2afc52ca5a8b9440667599bf149eebc7c925b639554 md5: 24a42a0c1cc33743e33572d63d489b54 @@ -2867,6 +2852,19 @@ packages: - pkg:pypi/cython?source=hash-mapping size: 3509778 timestamp: 1739228359500 +- conda: https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py312h890cc4b_0.conda + sha256: 61b4a1c0995b921b29a1beb1a5a01c9cf47c454b5e3734af4eac78ad9a358742 + md5: 0be8aa8dee0720eb41c7f0eb103f79dc + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: APACHE + size: 3175133 + timestamp: 1739228806624 - conda: https://conda.anaconda.org/conda-forge/win-64/cython-3.0.12-py313h11c7957_0.conda sha256: 0c5d28be02ffb8bed56c1d290f0535fe95ed28dffd86eb56f0cf5efaba006060 md5: 8be86847359ed6c522c23dfce6fa9b90 @@ -5536,15 +5534,6 @@ packages: purls: [] size: 88657 timestamp: 1723861474602 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 - md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL - size: 33408 - timestamp: 1697359010159 - conda: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.8-hb9d3cd8_0.conda sha256: 3b3f19ced060013c2dd99d9d46403be6d319d4601814c772a3472fe2955612b0 md5: 7c7927b404672409d9917d49bff5f2d6 @@ -5975,14 +5964,6 @@ packages: purls: [] size: 1208687 timestamp: 1727279378819 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 100393 - timestamp: 1702724383534 - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.8.1-hc4a0caf_0.conda sha256: 61a282353fcc512b5643ee58898130f5c7f8757c329a21fe407a3ef397d449eb md5: e7e5b0652227d646b44abdcbd989da7b @@ -6572,21 +6553,21 @@ packages: - pkg:pypi/munkres?source=hash-mapping size: 12452 timestamp: 1600387789153 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.15.0-py312h66e93f0_0.conda - sha256: b57c8bd233087479c70cb3ee3420861e0625b8a5a697f5abe41f5103fb2c2e69 - md5: a84061bc7e166712deb33bf7b32f756d +- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.15.0-py313h536fd9c_0.conda + sha256: ba62b6ccf6775290dcc4ca01c160b29f1fb67300928609fff60126fdae38034d + md5: 80b1cac6f9ca2ab7d96690b8aff3114d depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - mypy_extensions >=1.0.0 - psutil >=4.0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 - typing_extensions >=4.1.0 license: MIT license_family: MIT - size: 18664849 - timestamp: 1738767977895 + size: 17058016 + timestamp: 1738767732637 - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.15.0-py313h63b0ddb_0.conda sha256: ec50dc7be70eff5008d73b4bd29fba72e02e499e9b60060a49ece4c1e12a9d55 md5: e9dc60a2c2c62f4d2e24f61603f00bdc @@ -6616,22 +6597,22 @@ packages: license_family: MIT size: 10275919 timestamp: 1738768578918 -- conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.15.0-py313ha7868ed_0.conda - sha256: b84e3e51b6a98d5cff5e036c2366eb453a4e592891ec6ff3ab850ae27ba84322 - md5: efa5e67ca0b6d09cc2e149bee2001073 +- conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.15.0-py312h4389bb4_0.conda + sha256: 3bab35d2f17f9b2c8498c952f7d182848f2d70775e7e970d5f53c7eeb87741a6 + md5: 1eea4f4c0038b6f9b399dfad2305cd6f depends: - mypy_extensions >=1.0.0 - psutil >=4.0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - typing_extensions >=4.1.0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 8300827 - timestamp: 1738768501453 + size: 9852020 + timestamp: 1738768035931 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda sha256: 1895f47b7d68581a6facde5cb13ab8c2764c2e53a76bd746f8f98910dc4e08fe md5: 29097e7ea634a45cc5386b95cac6568f @@ -7424,18 +7405,6 @@ packages: - pkg:pypi/prompt-toolkit?source=hash-mapping size: 271905 timestamp: 1737453457168 -- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py312h66e93f0_0.conda - sha256: 158047d7a80e588c846437566d0df64cec5b0284c7184ceb4f3c540271406888 - md5: 8e30db4239508a538e4a3b3cdf5b9616 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - size: 466219 - timestamp: 1740663246825 - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.0.0-py313h536fd9c_0.conda sha256: 1b39f0ce5a345779d70c885664d77b5f8ef49f7378829bd7286a7fb98b7ea852 md5: 8f315d1fce04a046c1b93fa6e536661d @@ -7477,6 +7446,19 @@ packages: - pkg:pypi/psutil?source=hash-mapping size: 484139 timestamp: 1740663381126 +- conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.0.0-py312h4389bb4_0.conda + sha256: 088451ee2c9a349e1168f70afe275e58f86350faffb09c032cff76f97d4fb7bb + md5: f5b86d6e2e645ee276febe79a310b640 + depends: + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + size: 484682 + timestamp: 1740663813103 - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.0.0-py313ha7868ed_0.conda sha256: d8e5d86e939d5f308c7922835a94458afb29d81c90b5d43c43a5537c9c7adbc1 md5: 3cdf99cf98b01856af9f26c5d8036353 @@ -7787,32 +7769,6 @@ packages: - pkg:pypi/pytest-cov?source=hash-mapping size: 27565 timestamp: 1743886993683 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.10-h9e4cc4f_0_cpython.conda - sha256: 4dc1da115805bd353bded6ab20ff642b6a15fcc72ac2f3de0e1d014ff3612221 - md5: a41d26cd4d47092d683915d058380dec - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.0,<3.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=13 - - liblzma >=5.8.1,<6.0a0 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.49.1,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.0,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - constrains: - - python_abi 3.12.* *_cp312 - license: Python-2.0 - size: 31279179 - timestamp: 1744325164633 - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-h4724d56_0_cp313t.conda sha256: d584da00b02c2c1a66e97bf27e4850300816980bfb71c6862e2f441adc387c97 md5: 014d41d8e12e2bfe51dfed268ad56415 @@ -7966,6 +7922,27 @@ packages: size: 13245130 timestamp: 1744323974749 python_site_packages_path: lib/python3.13t/site-packages +- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.10-h3f84c4b_0_cpython.conda + sha256: a791fa8f5ce68ab00543ecd3798bfa573db327902ccd5cb7598fd7e94ea194d3 + md5: 495e849ebc04562381539d25cf303a9f + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.7.0,<3.0a0 + - libffi >=3.4.6,<3.5.0a0 + - liblzma >=5.8.1,<6.0a0 + - libsqlite >=3.49.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.5.0,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 15941050 + timestamp: 1744323489788 - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.2-hd7c436d_1_cp313t.conda build_number: 1 sha256: 9f5f763dd6bd9fa44a058a8275ea8acf99f86e741207c7aff909e4a1ad6a3902 @@ -8087,16 +8064,6 @@ packages: - pkg:pypi/tzdata?source=compressed-mapping size: 144160 timestamp: 1742745254292 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-6_cp312.conda - build_number: 6 - sha256: 09aff7ca31d1dbee63a504dba89aefa079b7c13a50dae18e1fe40a40ea71063e - md5: 95bd67b1113859774c30418e8481f9d8 - constrains: - - python 3.12.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6872 - timestamp: 1743483197238 - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.13-5_cp313t.conda build_number: 5 sha256: 3405de6b376bc49b228b7650d2aa119a42224a7e567a82951a708fc4b914c035 @@ -8163,6 +8130,16 @@ packages: purls: [] size: 6972 timestamp: 1743483253239 +- conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-6_cp312.conda + build_number: 6 + sha256: a36a7ba34e5e459da2ba89c3b4021798db26768562f01c00f07a6b33f4a16987 + md5: fd9176ac032bea8da0cfcc6fa3f724f1 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 7414 + timestamp: 1743483208797 - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.13-5_cp313t.conda build_number: 5 sha256: 859af9dbeb82ecf298a3ab003a41bcc6bf94c70d145a9dbb3b07b6bdf0079cd5 @@ -8648,21 +8625,21 @@ packages: - pkg:pypi/rpds-py?source=hash-mapping size: 255547 timestamp: 1743037492141 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.11.5-py312h286b59f_0.conda - sha256: cf1841ea018fe0454fd6702bbc2ceed47ecc6eb6a8833bd02f5645496eb938b6 - md5: 8d601aeb30065c16564c9222287ad4a6 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.11.5-py313h22842b3_0.conda + sha256: 71009c58fbcf5c080ecb9c827aed0063f4084a9fb795f856dadf59ba282213a9 + md5: ce5f73b7b5ffa504e506fc19e75c2ca1 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - libstdcxx >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 constrains: - __glibc >=2.17 license: MIT license_family: MIT - size: 9007534 - timestamp: 1744322720648 + size: 9008350 + timestamp: 1744322739984 - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.11.5-py313h837c616_0.conda sha256: 997664f872f47dfc40b9c9da648dc807436834d9240681df4617fb41def2ab2b md5: 9827bfa5243ab1a18d2edee3e884380c @@ -8692,19 +8669,19 @@ packages: license_family: MIT size: 7983019 timestamp: 1744322709881 -- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.11.5-py313h9f3c1d7_0.conda - sha256: 7d4f00d2e43a4f373c71e4cc06172953f1ef9a2c7f7037c89a99c073e75d5a20 - md5: 1aac5dad323a7d081431751065bbe51a +- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.11.5-py312h9211799_0.conda + sha256: 4f70e1c74cab5f58790cb2dbd59ef8d373f06741a91be75de25003fd0e4a7629 + md5: 80daa77c5f8a4cb5b414f0cae23d2e51 depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 license: MIT license_family: MIT - size: 8086406 - timestamp: 1744323620439 + size: 8087518 + timestamp: 1744323976757 - pypi: https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/scikit-learn/1.7.dev0/scikit_learn-1.7.dev0-cp313-cp313t-macosx_10_13_x86_64.whl name: scikit-learn version: 1.7.dev0 diff --git a/tests/test_narx.py b/tests/test_narx.py index 4513603..6f0172e 100644 --- a/tests/test_narx.py +++ b/tests/test_narx.py @@ -2,7 +2,7 @@ import numpy as np import pytest -from numpy.testing import assert_almost_equal, assert_array_equal +from numpy.testing import assert_allclose, assert_almost_equal, assert_array_equal from sklearn.metrics import r2_score from sklearn.utils.estimator_checks import check_estimator @@ -350,6 +350,41 @@ def test_sample_weight(): assert np.any(coef_w != coef_) + X = np.array( + [ + [1, 1], + [1, 2], + [1, 3], + [1, 4], + [2, 1], + [2, 2], + [2, 3], + [2, 4], + [3, 1], + [3, 2], + [3, 3], + [3, 4], + ] + ) + y = np.array([1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2]) + sw = rng.integers(0, 5, size=12) + X_repeated = np.repeat(X, sw, axis=0) + y_repeated = np.repeat(y, sw) + narx_osa = NARX().fit(X_repeated, y_repeated) + narx_no_sw = NARX().fit(X_repeated, y_repeated, coef_init=[0]*3) + assert_allclose( + np.r_[narx_osa.coef_, narx_osa.intercept_], + np.r_[narx_no_sw.coef_, narx_no_sw.intercept_] + ) + narx_sw = NARX().fit( + X, y, sample_weight=sw, + coef_init=[0]*3 + ) + assert_allclose( + np.r_[narx_no_sw.coef_, narx_no_sw.intercept_], + np.r_[narx_sw.coef_, narx_sw.intercept_] + ) + def test_divergence(): # Test divergence of NARX model rng = np.random.default_rng(12345)