v2.0.0 (2026-06-01) =================== First release under the NLR fork (``NatLabRockies/pyvisco``). Added ----- - ``pyproject.toml`` (PEP 621) replaces ``setup.py`` / ``setup.cfg`` / ``versioneer.py``. Version is derived from Git tags via ``setuptools-scm`` (fallback ``1.0.5``). - ``tests/`` test suite with 8 pytest cases covering ``load``, ``shift``, and ``prony`` modules. - GitHub Actions workflows: - ``ci.yml`` — pytest matrix (Python 3.11 / 3.12 / 3.13 × Ubuntu / Windows) plus a ``ruff check`` + ``ruff format --check`` lint job. - ``notebooks.yml`` — ``nbval-lax`` execution check on the three ``verification/verify_*.ipynb`` notebooks, on ``LinViscoFit.ipynb`` (voila GUI) and on ``tutorials/tutorial.ipynb``, plus a smoke-test step that runs the three ``tutorials/*.py`` example scripts. - ``binder.yml`` — weekly + on-push rebuild of the Binder image via ``jupyterhub/repo2docker-action``. - ``release-assets.yml`` — builds ``pyvisco-examples.zip`` from the contents of ``sample_data/`` and uploads it to every published GitHub release. - ``tutorials/`` folder with a non-interactive walkthrough notebook (``tutorial.ipynb``, the ``ipywidgets``-free counterpart of ``LinViscoFit.ipynb``) and three standalone scripts — ``freq_master.py``, ``freq_raw.py``, ``time_master.py`` — mirroring the three verification scenarios for headless / scripted use. - ``verification/README.md`` and ``tutorials/README.md`` describing the contents and CI of each folder. - This changelog. Changed ------- - **Breaking:** minimum Python is now 3.11 (was 3.7). - **Breaking:** ``pandas >= 2.1`` is required; internal ``df.loc[i]['col'] = x`` patterns rewritten to ``df.loc[i, 'col'] = x`` to satisfy the pandas 3.x ``ChainedAssignmentError``. - **Breaking:** ``ipywidgets >= 8.1`` is required. The ``FileUpload`` widget handling was rewritten for the new tuple-of-dicts ``value`` API (the ``_counter`` trait was removed upstream). A new ``_file_upload_bytes`` helper transparently supports both the v8 and v7 payload formats. - Dependency floors raised across the stack: ``numpy >= 1.26``, ``scipy >= 1.11``, ``matplotlib >= 3.8``, ``voila >= 0.5``, ``jupyterlab >= 4.1``, ``notebook >= 7.1``, ``openpyxl >= 3.1``, ``xlrd >= 2.0``. - Optional ``[interactive]``, ``[app]``, and ``[excel]`` extras have been folded into the default install — ``pip install pyvisco`` now provides everything needed to run the dashboard. - Binder environment moved to Python 3.13. The legacy top-level ``Dockerfile``, ``environment.yml``, and ``requirements.txt`` were removed; Binder config now lives entirely under ``binder/``. - ReadtheDocs build switched from the unmaintained ``m2r2`` to ``myst-parser``. - Documentation, package metadata, license, and Zenodo records updated to reflect the move from NREL to NLR (Natural Laboratory of the Rockies). - Maintainer contact: ``martin.springer@nlr.gov``. - Repository-wide ``ruff check`` + ``ruff format`` pass (line length 100, target ``py311``). Fixed ----- - Legacy ``.xls`` uploads no longer fail silently. ``xlrd`` is now a hard dependency and the ``@exceptions`` decorator on the upload observers has a catch-all branch that writes the traceback to both the output widget and ``sys.stderr`` (so the failure is visible in the Voila server log). - ``verify.load_prony_ANSYS`` now captures the declared ``nterms`` from the ``TB,PRONY,...`` record and raises a descriptive ``ValueError`` if the parsed ``alpha_i`` / ``tau_i`` counts disagree with each other or with the declared count (replaces a silently-discarded ``int()`` call that could crash on unrelated ``TB`` records). - ``out.to_csv`` docstring corrected: returns a CSV ``str`` when ``filepath`` is ``None``, otherwise writes to disk and returns ``None`` (previously documented as ``pandas.DataFrame`` / ``bytes``). Removed ------- - ``setup.py``, ``setup.cfg``, ``versioneer.py``, ``MANIFEST.in``, ``Procfile``, ``runtime.txt``, and the stale top-level ``build/`` tree. - ``LinViscoFit-test.ipynb`` development sandbox. - ``examples/examples.zip`` is no longer committed to the repository; it is now produced from ``sample_data/`` (renamed from ``examples/``) at release time and attached to the GitHub release as ``pyvisco-examples.zip``. The voila app's download link points at ``https://github.com/NatLabRockies/pyvisco/releases/latest/download/pyvisco-examples.zip``. - Auto-generated ``docs/_autosummary/*.rst`` stubs are no longer tracked (they are regenerated by Sphinx on every build). `Release tag on GitHub `_