<img src="https://raw.githubusercontent.com/jepegit/cellpy/master/docs/_static/cellpy-icon-long.svg" height="100" alt="cellpy-icon">
# **cellpy** - *a library for assisting in analysing batteries and cells*
[](https://pypi.python.org/pypi/cellpy)
[](https://cellpy.readthedocs.io/en/latest/?badge=latest)
[](https://pepy.tech/project/cellpy)
This Python Package was developed to help the
researchers at IFE, Norway, in their cumbersome task of
interpreting and handling data from cycling tests of
## Features
* Convert testing data into a common format
* Summarize and compare data
* Filter out the steps of interest
* Process and plot the data
* Do simple and advanced analysis on single datasets as well as collections of datasets
* And more!
## Documentation
The documentation for ``cellpy`` is hosted on [Read the Docs](https://cellpy.readthedocs.io).
## Installation and dependencies
The easiest way to install ``cellpy`` is to install with conda or pip.
With conda:
```
conda install -c conda-forge cellpy
```
Or if you prefer installing using pip:
```
python -m pip install cellpy
```
Have a look at the documentation for more detailed installation procedures, especially
with respect to "difficult" dependencies when installing with pip.
## License
``cellpy`` is free software made available under the MIT License.
## Citing cellpy
If you use ``cellpy`` in your work, please cite our paper:
> Wind J., Ulvestad A., Abdelhamid M., Mæhlen J.P. (2024). Cellpy – an open-source library for processing and analysis of battery testing data. _Journal of Open Source Software, 9(97), 6236_.
[](https://doi.org/10.21105/joss.06236)
## Contributing
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given. If you want to contribute,
please have a look at [Contributing Guidelines](CONTRIBUTING.md).
# History
## 1.0.1
* Utils: `example_data` now includes auto-download of example data
* General: supports only python 3.10 and up to 3.11
* Batch: `naked` and `init(empty=True)` easier method for creating batch with empty pages
* File handling: new fix in `find_files`
* Batch / Utils: refactored and updated `Collectors` (using `plotly`)
* Batch: new summary plotter (using `plotly`)
* Batch: new convenience function for automatically creating batch from batch-file if file exists.
* Batch: added `mark` and `drop` methods
* CLI: added possibility to use custom jupyter executable
* Added checks (`c.has_xxx`) for checking if data has been processed correctly / fix errors in raw/semi-processed data.
* Added possibility to filter on C-rates (`c.get_cycles`)
* Added experimental feature `c.total_time_at_voltage_level` for calculating total time at low/high voltage
* Added experimental instrument reader for neware xlsx files (hopefully not used much because it is very slow)
* Added try-except block for ica post-processing step and add if-clause (suggested by Vajee)
* Fixed several smaller bugs and improved some of the functionality (most notably in `c.get_cap`)
* Added CI for macOS
* Added conda package including `sqlalchemy-access`
* Improved plotting tools
* Improved documentation
* Improved feedback from the CLI
## 1.0.0 (2023)
* Unit handling: new unit handling (using pint)
* Unit handling: renaming summary headers
* Unit handling: new cellpy-file-format version
* Unit handling: tool for converting old to new format
* Unit handling: parsing input parameters for units
* Templates: using one repository with sub-folders
* Templates: adding more documentation
* File handling: allow for external raw files (ssh)
* Readers: neware.txt (one version/model)
* Readers: `arbin_sql7` (experimental, @jtgibson91)
* Batch plotting: collectors for both data collection, plotting and saving
* OCV-rlx: improvements of the OCV-rlx tools
* Internals: rename main classes (`CellpyData` -> `CellpyCell`, `Cell` -> `Data`)
* Internals: rename `.cell` property to `.data`
* Internals: allow for only one `Data` object pr `CellpyCell` object
* CLI: general improvements and bug fixes
* CLI: move editing of db-file to the edit sub-command
## 0.4.3 (2023)
* Neware txt loader (supports one specific format only, other formats will have to wait for v.1.0)
## 0.4.2 (2022)
* Changed definition of Coulombic Difference (negative of previous)
* Updated loaders with hooks and additional base class `TxtLoader` with configuration mechanism
* Support for Maccor txt files
* Supports only python 3.8 and up
* Optional parameters through batch and pages
* Several bug fixes and minor improvements / adjustments
* Restrict use of instrument label to only one option
* Fix bug in example file (@kevinsmia1939)
## 0.4.1 (2021)
* Updated documentations
* CLI improvements
* New argument for get_cap: `max_cycle`
* Reverting from using Documents to user home for location of prm file in windows.
* Easyplot by Amund
* Arbin sql reader by Muhammad
## 0.4.0 (2020)
* Reading arbin .res files with auxiliary data should now work.
* Many bugs have been removed - many new introduced.
* Now on conda-forge (can be installed using conda).
## 0.4.0 a2 (2020)
* Reading PEC files now updated and should work
## 0.4.0 a1 (2020)
* New column names (lowercase and underscore)
* New batch concatenating and plotting routines
## 0.3.3 (2020)
* Switching from git-flow to github-flow
* New cli options for running batches
* cli option for creating template notebooks
* Using `ruamel.yaml` instead of `pyyaml`
* Using `python-box` > 4
* Several bug-fixes
## 0.3.2 (2019)
* Starting fixing documentation
* TODO: create conda package
* TODO: extensive tests
## 0.3.1 (2019)
* Refactoring - renaming from `dfsummary` to `summary`
* Refactoring - renaming from `step_table` to `steps`
* Refactoring - renaming from `dfdata` to `raw`
* Refactoring - renaming `cellpy.data` to `cellpy.get`
* Updated save and load cellpy files allowing for new naming
* Implemented cellpy new and cellpy serve cli functionality
## 0.3.0 (2019)
* New batch-feature
* Improved make-steps and make-summary functionality
* Improved cmd-line interface for setup
* More helper functions and tools
* Experimental support for other instruments
* invoke tasks for developers
## 0.2.1 (2018)
* Allow for using mdbtools also on win
* Slightly faster find_files using cache and `fnmatch`
* Bug fix: error in sorting files when using `pathlib` fixed
## 0.2.0 (2018-10-17)
* Improved creation of step tables (much faster)
* Default compression on cellpy (hdf5) files
* Bug fixes
## 0.1.22 (2018-07-17)
* Parameters can be set by dot-notation (`python-box`).
* The parameter Instruments.cell_configuration is removed.
* Options for getting voltage curves in different formats.
* Fixed python 3.6 issues with Read the Docs.
* Can now also be used on posix (the user must install `mdb_tools` first).
* Improved logging allowing for custom log-directory.
## 0.1.21 (2018-06-09)
* No legacy python.
## 0.1.0 (2016-09-26)
* First release on PyPI.
Raw data
{
"_id": null,
"home_page": "https://github.com/jepegit/cellpy",
"name": "cellpy",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "cellpy",
"author": "Jan Petter Maehlen",
"author_email": "jepe@ife.no",
"download_url": "https://files.pythonhosted.org/packages/76/66/8fa0b5247f93c53eb5123f21a57e7f38bf9d216177db5b98c0122c3039ea/cellpy-1.0.1.post3.tar.gz",
"platform": null,
"description": "<img src=\"https://raw.githubusercontent.com/jepegit/cellpy/master/docs/_static/cellpy-icon-long.svg\" height=\"100\" alt=\"cellpy-icon\">\r\n\r\n# **cellpy** - *a library for assisting in analysing batteries and cells*\r\n\r\n\r\n[](https://pypi.python.org/pypi/cellpy)\r\n[](https://cellpy.readthedocs.io/en/latest/?badge=latest)\r\n[](https://pepy.tech/project/cellpy)\r\n\r\nThis Python Package was developed to help the\r\nresearchers at IFE, Norway, in their cumbersome task of\r\ninterpreting and handling data from cycling tests of\r\n\r\n## Features\r\n\r\n* Convert testing data into a common format\r\n* Summarize and compare data\r\n* Filter out the steps of interest\r\n* Process and plot the data\r\n* Do simple and advanced analysis on single datasets as well as collections of datasets\r\n* And more!\r\n\r\n## Documentation\r\n\r\nThe documentation for ``cellpy`` is hosted on [Read the Docs](https://cellpy.readthedocs.io).\r\n\r\n## Installation and dependencies\r\n\r\nThe easiest way to install ``cellpy`` is to install with conda or pip.\r\n\r\nWith conda:\r\n\r\n```\r\nconda install -c conda-forge cellpy\r\n```\r\n\r\nOr if you prefer installing using pip:\r\n\r\n```\r\npython -m pip install cellpy\r\n```\r\n\r\nHave a look at the documentation for more detailed installation procedures, especially\r\nwith respect to \"difficult\" dependencies when installing with pip.\r\n\r\n## License\r\n\r\n``cellpy`` is free software made available under the MIT License.\r\n\r\n## Citing cellpy\r\n\r\nIf you use ``cellpy`` in your work, please cite our paper:\r\n\r\n> Wind J., Ulvestad A., Abdelhamid M., M\u00c3\u00a6hlen J.P. (2024). Cellpy \u00e2\u20ac\u201c an open-source library for processing and analysis of battery testing data. _Journal of Open Source Software, 9(97), 6236_.\r\n\r\n[](https://doi.org/10.21105/joss.06236)\r\n\r\n## Contributing\r\n\r\nContributions are welcome, and they are greatly appreciated! Every\r\nlittle bit helps, and credit will always be given. If you want to contribute,\r\nplease have a look at [Contributing Guidelines](CONTRIBUTING.md).\r\n\r\n\r\n# History\r\n\r\n## 1.0.1\r\n\r\n* Utils: `example_data` now includes auto-download of example data\r\n* General: supports only python 3.10 and up to 3.11\r\n* Batch: `naked` and `init(empty=True)` easier method for creating batch with empty pages\r\n* File handling: new fix in `find_files`\r\n* Batch / Utils: refactored and updated `Collectors` (using `plotly`)\r\n* Batch: new summary plotter (using `plotly`)\r\n* Batch: new convenience function for automatically creating batch from batch-file if file exists.\r\n* Batch: added `mark` and `drop` methods\r\n* CLI: added possibility to use custom jupyter executable\r\n* Added checks (`c.has_xxx`) for checking if data has been processed correctly / fix errors in raw/semi-processed data.\r\n* Added possibility to filter on C-rates (`c.get_cycles`)\r\n* Added experimental feature `c.total_time_at_voltage_level` for calculating total time at low/high voltage\r\n* Added experimental instrument reader for neware xlsx files (hopefully not used much because it is very slow)\r\n* Added try-except block for ica post-processing step and add if-clause (suggested by Vajee)\r\n* Fixed several smaller bugs and improved some of the functionality (most notably in `c.get_cap`)\r\n* Added CI for macOS\r\n* Added conda package including `sqlalchemy-access`\r\n* Improved plotting tools\r\n* Improved documentation\r\n* Improved feedback from the CLI\r\n\r\n## 1.0.0 (2023)\r\n\r\n* Unit handling: new unit handling (using pint)\r\n* Unit handling: renaming summary headers\r\n* Unit handling: new cellpy-file-format version\r\n* Unit handling: tool for converting old to new format\r\n* Unit handling: parsing input parameters for units\r\n* Templates: using one repository with sub-folders\r\n* Templates: adding more documentation\r\n* File handling: allow for external raw files (ssh)\r\n* Readers: neware.txt (one version/model)\r\n* Readers: `arbin_sql7` (experimental, @jtgibson91)\r\n* Batch plotting: collectors for both data collection, plotting and saving\r\n* OCV-rlx: improvements of the OCV-rlx tools\r\n* Internals: rename main classes (`CellpyData` -> `CellpyCell`, `Cell` -> `Data`)\r\n* Internals: rename `.cell` property to `.data`\r\n* Internals: allow for only one `Data` object pr `CellpyCell` object\r\n* CLI: general improvements and bug fixes\r\n* CLI: move editing of db-file to the edit sub-command\r\n\r\n\r\n## 0.4.3 (2023)\r\n\r\n* Neware txt loader (supports one specific format only, other formats will have to wait for v.1.0)\r\n\r\n## 0.4.2 (2022)\r\n\r\n* Changed definition of Coulombic Difference (negative of previous)\r\n* Updated loaders with hooks and additional base class `TxtLoader` with configuration mechanism\r\n* Support for Maccor txt files\r\n* Supports only python 3.8 and up\r\n* Optional parameters through batch and pages\r\n* Several bug fixes and minor improvements / adjustments\r\n* Restrict use of instrument label to only one option\r\n* Fix bug in example file (@kevinsmia1939)\r\n\r\n## 0.4.1 (2021)\r\n\r\n* Updated documentations\r\n* CLI improvements\r\n* New argument for get_cap: `max_cycle`\r\n* Reverting from using Documents to user home for location of prm file in windows.\r\n* Easyplot by Amund\r\n* Arbin sql reader by Muhammad\r\n\r\n## 0.4.0 (2020)\r\n\r\n* Reading arbin .res files with auxiliary data should now work.\r\n* Many bugs have been removed - many new introduced.\r\n* Now on conda-forge (can be installed using conda).\r\n\r\n## 0.4.0 a2 (2020)\r\n\r\n* Reading PEC files now updated and should work\r\n\r\n## 0.4.0 a1 (2020)\r\n\r\n* New column names (lowercase and underscore)\r\n* New batch concatenating and plotting routines\r\n\r\n## 0.3.3 (2020)\r\n\r\n* Switching from git-flow to github-flow\r\n* New cli options for running batches\r\n* cli option for creating template notebooks\r\n* Using `ruamel.yaml` instead of `pyyaml`\r\n* Using `python-box` > 4\r\n* Several bug-fixes\r\n\r\n## 0.3.2 (2019)\r\n\r\n* Starting fixing documentation\r\n* TODO: create conda package\r\n* TODO: extensive tests\r\n\r\n## 0.3.1 (2019)\r\n\r\n* Refactoring - renaming from `dfsummary` to `summary`\r\n* Refactoring - renaming from `step_table` to `steps`\r\n* Refactoring - renaming from `dfdata` to `raw`\r\n* Refactoring - renaming `cellpy.data` to `cellpy.get`\r\n* Updated save and load cellpy files allowing for new naming\r\n* Implemented cellpy new and cellpy serve cli functionality\r\n\r\n## 0.3.0 (2019)\r\n\r\n* New batch-feature\r\n* Improved make-steps and make-summary functionality\r\n* Improved cmd-line interface for setup\r\n* More helper functions and tools\r\n* Experimental support for other instruments\r\n* invoke tasks for developers\r\n\r\n## 0.2.1 (2018)\r\n\r\n* Allow for using mdbtools also on win\r\n* Slightly faster find_files using cache and `fnmatch`\r\n* Bug fix: error in sorting files when using `pathlib` fixed\r\n\r\n## 0.2.0 (2018-10-17)\r\n\r\n* Improved creation of step tables (much faster)\r\n* Default compression on cellpy (hdf5) files\r\n* Bug fixes\r\n\r\n## 0.1.22 (2018-07-17)\r\n\r\n* Parameters can be set by dot-notation (`python-box`).\r\n* The parameter Instruments.cell_configuration is removed.\r\n* Options for getting voltage curves in different formats.\r\n* Fixed python 3.6 issues with Read the Docs.\r\n* Can now also be used on posix (the user must install `mdb_tools` first).\r\n* Improved logging allowing for custom log-directory.\r\n\r\n## 0.1.21 (2018-06-09)\r\n\r\n* No legacy python.\r\n\r\n## 0.1.0 (2016-09-26)\r\n\r\n* First release on PyPI.\r\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Extract and manipulate data from battery data testers.",
"version": "1.0.1.post3",
"project_urls": {
"Homepage": "https://github.com/jepegit/cellpy"
},
"split_keywords": [
"cellpy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8b4df888c9dc19a021ad62a793874618bb3483eaacc313d4a1d78f26591624ec",
"md5": "2c3b8d73957d46723dfe0b5caf7edb00",
"sha256": "ed0749f4b041270e9f500763e9d74417e729699d0041760fa2d00c96b069c381"
},
"downloads": -1,
"filename": "cellpy-1.0.1.post3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2c3b8d73957d46723dfe0b5caf7edb00",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 356024,
"upload_time": "2024-09-19T18:35:14",
"upload_time_iso_8601": "2024-09-19T18:35:14.732426Z",
"url": "https://files.pythonhosted.org/packages/8b/4d/f888c9dc19a021ad62a793874618bb3483eaacc313d4a1d78f26591624ec/cellpy-1.0.1.post3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76668fa0b5247f93c53eb5123f21a57e7f38bf9d216177db5b98c0122c3039ea",
"md5": "507f1494fdd685da31e4fdd862deb838",
"sha256": "8bffcbc30443d1aff2ad070306bb3da65f5096f42c3f2cc37317f1fd54381010"
},
"downloads": -1,
"filename": "cellpy-1.0.1.post3.tar.gz",
"has_sig": false,
"md5_digest": "507f1494fdd685da31e4fdd862deb838",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 320774,
"upload_time": "2024-09-19T18:35:16",
"upload_time_iso_8601": "2024-09-19T18:35:16.573936Z",
"url": "https://files.pythonhosted.org/packages/76/66/8fa0b5247f93c53eb5123f21a57e7f38bf9d216177db5b98c0122c3039ea/cellpy-1.0.1.post3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-19 18:35:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jepegit",
"github_project": "cellpy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"requirements": [
{
"name": "PyGithub",
"specs": [
[
">=",
"1.43.0"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"6.6"
]
]
},
{
"name": "cookiecutter",
"specs": []
},
{
"name": "cryptography",
"specs": [
[
">=",
"1.5.2"
]
]
},
{
"name": "dateparser",
"specs": []
},
{
"name": "fabric",
"specs": []
},
{
"name": "ipykernel",
"specs": []
},
{
"name": "ipykernel",
"specs": []
},
{
"name": "ipython",
"specs": []
},
{
"name": "ipywidgets",
"specs": []
},
{
"name": "jinja2_time",
"specs": []
},
{
"name": "jupyterlab",
"specs": []
},
{
"name": "kaleido",
"specs": []
},
{
"name": "lmfit",
"specs": [
[
">=",
"0.9.7"
]
]
},
{
"name": "matplotlib",
"specs": [
[
">=",
"1.5.3"
]
]
},
{
"name": "notebook",
"specs": []
},
{
"name": "numpy",
"specs": [
[
">=",
"2.0"
]
]
},
{
"name": "openpyxl",
"specs": []
},
{
"name": "pandas",
"specs": [
[
"<=",
"2.1"
]
]
},
{
"name": "pint",
"specs": []
},
{
"name": "plotly",
"specs": []
},
{
"name": "pyodbc",
"specs": [
[
">=",
"4.0.16"
]
]
},
{
"name": "python-box",
"specs": []
},
{
"name": "python-dotenv",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "rich",
"specs": []
},
{
"name": "ruamel.yaml",
"specs": []
},
{
"name": "scipy",
"specs": [
[
">=",
"0.19.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
">=",
"35.0.1"
]
]
},
{
"name": "sqlalchemy-access",
"specs": []
},
{
"name": "sqlalchemy",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "tables",
"specs": [
[
">=",
"3.7"
]
]
},
{
"name": "tqdm",
"specs": [
[
">=",
"4.44.1"
]
]
},
{
"name": "xlrd",
"specs": []
},
{
"name": "charset_normalizer",
"specs": []
}
],
"lcname": "cellpy"
}