๐ ๐ ๐ We've come a long ways from the [first commit](https://github.com/ECSHackWeek/impedance.py/commit/6cbc6fc37aaf8127ee3106c1d55299a0c92592ec) in 2018! ๐ ๐ ๐
With the release of a version 1.0 (and soon-to-be submitted JOSS paper), impedance.py is moving from a beta project to a "production-ready" package (although we know quite a few folks who've been using it in academic as well as commercial settings for a while now ๐). While we still plan on adding new features and improving the open-source impedance analysis workflow, the API and modularity of the package should remain consistent so that tools and wrappers can easily be built around it.
Highlights of this release:
- Fixes bug and significantly improves LinKK validation method ๐ (BGerwe)
- Multi-letter circuit elements ๐ (nealde)
- New and improved data visualizations including interactive Altair charts ๐ (BGerwe, mdmurbach)
- Increase test coverage to 100%!!! ๐ (BGerwe, mdmurbach, lktsui)
- Additional file types and improved data preprocessing ๐ (lktsui)
- New equivalent circuit elements ๐ (hkennyv, BGerwe)
- Improved documentation and additional examples โ๏ธ (BGerwe, mdmurbach)
- General performance and code readability improvements ๐
Backwards incompatible changes:
Element renaming:
With the new flexibility to have multi-letter circuit elements, several of the elements were renamed to be more in line with typical electrochemical naming practices:
- Constant phase element (`E` renamed to `CPE`)
- Semi-infinite Warburg element (`A` renamed to `W`)
- Short (finite-length) Warburg element (new element, `Ws`)
- Open (finite-space) Warburg element (`W` renamed to `Wo`)
- Finite-length Gerischer Element (new element, `Gs`)
Module restructuring:
In order to provide flexibility for future model additions and analysis methods, the package was restructured slightly to move the circuits module into `impedance.models`. For example, importing the CustomCircuit class has changed from `from impedance.circuits import CustomCircuit` to `from impedance.models.circuits import CustomCircuit`. We think there are a lot of exciting opportunities to add additional statistical or physics-based models and having this consistent structure will allow for visualization, model comparison/selection, and preprocessing methods to be interchangeable across models.
Acknowledgements
We're up to quite a few contributors to the package! In addition to the folks who contributed to this release above, we're also thankful to all of the [contributors](https://github.com/ECSHackWeek/impedance.py#contributors-) over the past few years.