cellpy 2.0.0a3__tar.gz → 2.0.0a4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/HISTORY.md +7 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/PKG-INFO +1 -1
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/tabular.py +8 -2
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/capacity_curves.py +23 -14
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/collectors.py +26 -13
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/ica.py +10 -3
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/plotutils.py +31 -25
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.aliases +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/commands/build.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/commands/create-original-issue-file.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/cellpy-core-migration.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/cellpy-workspace.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/graphify.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/issueflow-rules.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/kiss.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/this-project.mdc +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/caveman/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/grill-me/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-archive/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-cleanup/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-close/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-comments/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-cycle/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-epic/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-fix/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-graphify/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-history-update/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-init/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-pause/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-pick/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-plan/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-start/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-status/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-version-bump/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-yolo/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/issueflow-build/SKILL.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.dockerignore +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.editorconfig +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.env_example +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.gitattributes +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.gitignore +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/README.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/migrate_prms_calls.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/scan_hardcoded_headers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/scan_member_usage.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/01-current-issues/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue459_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/2026-07-09_archived_issues.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue425_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue425_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue467_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue491_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue491_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_original.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_plan.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_status.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/bdf-export.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/build-and-versioning.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-architecture.excalidraw +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-branching.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-epic.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-workspace-repos.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpycell-di-restructuring.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/ci-tiers.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/filters-and-plot-filtering.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/otherpath-upath.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/release-procedure.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/testing-and-coverage.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/this-project.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/v2-cellpycore-pin-gate.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/05-epics/.gitkeep +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.readthedocs.yaml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/AGENTS.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/AUTHORS.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/CODE_OF_CONDUCT.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/CONTRIBUTING.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/DEPRECATIONS.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/LICENSE.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/README.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_data_structure.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_folder_structure.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_packaging_pypi.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_setup.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_conda_package.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_docs.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_loaders_and_instruments.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_various.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/index.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/01_getting_started_tutorial.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/02_read_cell_data.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/03_more_about_get.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/04_other_interactions.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/05_configuring.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/06_pandas.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/07_data_mining.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/08_the_cellpy_cmd.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basics.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/examples.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/index.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/01_arbin.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/02_maccor.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/03_PEC.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/04_Neware.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/05_biologics.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/06_custom.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_001.png +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_002.png +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_get_cap.ipynb +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_simple_plot.ipynb +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_templates.ipynb +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_xxx-checkpoint.ipynb +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/tips_and_tricks.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/batch.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/collectors.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/custom_file_loaders.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/easyplot.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig1.png +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig2.png +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/ica.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/plotting.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/templates.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/tut_ocv_rlx.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/formats.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/index.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/installation.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/usage.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/index.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/README.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/baselines/v1x_ubuntu_py313.json +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/check_baseline.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/conftest.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/paths.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/test_performance.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/_deprecation.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/_version.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/cli.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/legacy.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/loader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/migrate.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/models.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/session.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/sources.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/types.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exceptions.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/bdf.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/cycles.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/summary.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/connections.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/otherpath.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_alias_module.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_importing.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_module.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_syncronized.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_version.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/py.typed +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/LICENSE +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/btsda.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/cli.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/dicts.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/formats.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/main.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/nda.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/ndax.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/utils.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/version.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/log.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/logging.json +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/.cellpy_prms_default.conf +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/_shim.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/internal_settings.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/legacy/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/legacy/update_headers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/prmreader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/prms.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/dtype.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/fids.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/format.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/keys.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/legacy_read.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/meta.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/meta_archive.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/read.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/selectors.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/translate.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/v9.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/write.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellreader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/data_structures.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/dbreader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/do.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/filefinder.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/SQL Table IDs.txt +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_res.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_7.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_config.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_csv.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_h5.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_xlsx.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/base.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/batmo_bdf.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/biologics_mpr.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/batmo_bdf_bdf.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_one.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_three.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_two.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_zero.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_one.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_two.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_zero.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/custom.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/ext_nda_reader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/loader_specific_modules/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/loader_specific_modules/biologic_file_format.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/local_instrument.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/maccor_txt.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_nda.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_txt.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_xlsx.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/pec_csv.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/post_processors.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/pre_processors.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/json_dbreader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/merger.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/native_core.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/slicing.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/sql_dbreader.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/test_meta.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/__init__.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_analyzers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_core.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_experiments.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_exporters.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_helpers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_journals.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_plotters.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_reporters.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/dumpers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/engines.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/sqlite_from_excel_db.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/diagnostics.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/example_data.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/helpers.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/live.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/ocv_rlx.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/processor.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/template_registry.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/README.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/cellpy/meta.yaml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/cellpycore/meta.yaml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/regenerate_goldens.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/Dockerfile.build-test +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/README.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/compose.yml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/data/hello.txt +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/data/nested/sample.txt +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/environment.yml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/environment_dev.yml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/github_actions_environment.yml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/noxfile.py +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/.github/workflows/draft-pdf.yml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/.gitignore +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/Cellpy-Utils.jpg +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/CellpyCell.jpg +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/CellpyData.jpg +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/paper.bib +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/paper.md +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/pyproject.toml +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/scripts/build_test.sh +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/scripts/dev_sync.sh +0 -0
- {cellpy-2.0.0a3 → cellpy-2.0.0a4}/uv.lock +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
* **Breaking:** `CellpyCell.get_cap` now returns native `cellpycore` curve
|
|
6
|
+
columns (#540, native-headers flip Stage 1): `voltage` → `potential` and
|
|
7
|
+
`cycle` → `cycle_num` (`capacity` / `direction` unchanged). All in-repo
|
|
8
|
+
consumers — `plotutils.cycles_plot`, the batch collectors, `ica`, and the
|
|
9
|
+
CSV/Excel exporters — are updated; user code that indexes the `get_cap`
|
|
10
|
+
frame directly must rename. See `docs/getting_started/migration_v1_to_v2.md`.
|
|
11
|
+
|
|
5
12
|
* Removed the deprecated `cellpy.utils.easyplot` module (#544). It was
|
|
6
13
|
deprecated since 1.1 with removal scheduled for 2.0; use
|
|
7
14
|
`cellpy.utils.plotutils` and `cellpy.utils.collectors` instead. The module,
|
|
@@ -23,9 +23,15 @@ import warnings
|
|
|
23
23
|
from pathlib import Path
|
|
24
24
|
from typing import TYPE_CHECKING
|
|
25
25
|
|
|
26
|
+
from cellpycore.config import CurveCols
|
|
27
|
+
|
|
26
28
|
from cellpy.exceptions import NoDataFound
|
|
27
29
|
from cellpy.readers import externals
|
|
28
30
|
|
|
31
|
+
# get_cap emits native CurveCols names (#540): potential/cycle_num, not
|
|
32
|
+
# voltage/cycle.
|
|
33
|
+
_CCOLS = CurveCols()
|
|
34
|
+
|
|
29
35
|
if TYPE_CHECKING:
|
|
30
36
|
from cellpy.readers.cellreader import CellpyCell
|
|
31
37
|
|
|
@@ -74,8 +80,8 @@ def export_cycles(
|
|
|
74
80
|
if df.empty:
|
|
75
81
|
logging.debug("NoneType from get_cap")
|
|
76
82
|
else:
|
|
77
|
-
c = df[
|
|
78
|
-
v = df[
|
|
83
|
+
c = df[_CCOLS.capacity]
|
|
84
|
+
v = df[_CCOLS.potential]
|
|
79
85
|
|
|
80
86
|
_last = c.iat[-1]
|
|
81
87
|
_first = c.iat[0]
|
|
@@ -13,12 +13,20 @@ import logging
|
|
|
13
13
|
import warnings
|
|
14
14
|
from typing import TYPE_CHECKING
|
|
15
15
|
|
|
16
|
+
from cellpycore.config import CurveCols
|
|
17
|
+
|
|
16
18
|
import cellpy.config as config
|
|
17
19
|
|
|
18
20
|
from . import externals as externals
|
|
19
21
|
from cellpy.readers import data_structures as ds
|
|
20
22
|
from cellpy.exceptions import NullData
|
|
21
23
|
|
|
24
|
+
# Native curve-frame column names (cellpycore #118). get_cap and the
|
|
25
|
+
# single-branch charge/discharge extractors emit these unconditionally on the
|
|
26
|
+
# v2 line (#540): potential/cycle_num replace the legacy voltage/cycle;
|
|
27
|
+
# capacity/direction are unchanged.
|
|
28
|
+
_CCOLS = CurveCols()
|
|
29
|
+
|
|
22
30
|
if TYPE_CHECKING:
|
|
23
31
|
from cellpy.readers.cellreader import CellpyCell
|
|
24
32
|
|
|
@@ -241,7 +249,10 @@ def get_cap(
|
|
|
241
249
|
|
|
242
250
|
if insert_nan:
|
|
243
251
|
_nan = externals.pandas.DataFrame(
|
|
244
|
-
{
|
|
252
|
+
{
|
|
253
|
+
_CCOLS.capacity: [externals.numpy.nan],
|
|
254
|
+
_CCOLS.potential: [externals.numpy.nan],
|
|
255
|
+
}
|
|
245
256
|
)
|
|
246
257
|
|
|
247
258
|
converter_kwargs = dict()
|
|
@@ -391,8 +402,8 @@ def get_cap(
|
|
|
391
402
|
logging.debug("no first charge step found")
|
|
392
403
|
|
|
393
404
|
if return_dataframe:
|
|
394
|
-
x_col =
|
|
395
|
-
y_col =
|
|
405
|
+
x_col = _CCOLS.potential
|
|
406
|
+
y_col = _CCOLS.capacity
|
|
396
407
|
if interpolate_along_cap:
|
|
397
408
|
x_col, y_col = y_col, x_col
|
|
398
409
|
|
|
@@ -401,8 +412,8 @@ def get_cap(
|
|
|
401
412
|
if not _first_step_c.empty:
|
|
402
413
|
_first_df = externals.pandas.DataFrame(
|
|
403
414
|
{
|
|
404
|
-
|
|
405
|
-
|
|
415
|
+
_CCOLS.potential: _first_step_v,
|
|
416
|
+
_CCOLS.capacity: _first_step_c,
|
|
406
417
|
}
|
|
407
418
|
)
|
|
408
419
|
if interpolated:
|
|
@@ -417,7 +428,7 @@ def get_cap(
|
|
|
417
428
|
if insert_nan:
|
|
418
429
|
_first_df = externals.pandas.concat([_first_df, _nan])
|
|
419
430
|
if categorical_column:
|
|
420
|
-
_first_df[
|
|
431
|
+
_first_df[_CCOLS.direction] = -1
|
|
421
432
|
else:
|
|
422
433
|
_first_df = externals.pandas.DataFrame()
|
|
423
434
|
|
|
@@ -425,8 +436,8 @@ def get_cap(
|
|
|
425
436
|
if not _last_step_c.empty:
|
|
426
437
|
_last_df = externals.pandas.DataFrame(
|
|
427
438
|
{
|
|
428
|
-
|
|
429
|
-
|
|
439
|
+
_CCOLS.potential: _last_step_v.values,
|
|
440
|
+
_CCOLS.capacity: _last_step_c.values,
|
|
430
441
|
}
|
|
431
442
|
)
|
|
432
443
|
if interpolated:
|
|
@@ -441,7 +452,7 @@ def get_cap(
|
|
|
441
452
|
if insert_nan:
|
|
442
453
|
_last_df = externals.pandas.concat([_last_df, _nan])
|
|
443
454
|
if categorical_column:
|
|
444
|
-
_last_df[
|
|
455
|
+
_last_df[_CCOLS.direction] = 1
|
|
445
456
|
else:
|
|
446
457
|
_last_df = externals.pandas.DataFrame()
|
|
447
458
|
|
|
@@ -457,9 +468,7 @@ def get_cap(
|
|
|
457
468
|
else:
|
|
458
469
|
c = externals.pandas.concat([_first_df, _last_df], axis=0)
|
|
459
470
|
if label_cycle_number:
|
|
460
|
-
c.insert(0,
|
|
461
|
-
# c["cycle"] = current_cycle
|
|
462
|
-
# c = c[["cycle", "voltage", "capacity", "direction"]]
|
|
471
|
+
c.insert(0, _CCOLS.cycle_num, current_cycle)
|
|
463
472
|
if cycle_df.empty:
|
|
464
473
|
cycle_df = c
|
|
465
474
|
else:
|
|
@@ -467,8 +476,8 @@ def get_cap(
|
|
|
467
476
|
if capacity_then_voltage:
|
|
468
477
|
cols = cycle_df.columns.to_list()
|
|
469
478
|
new_cols = [
|
|
470
|
-
cols.pop(cols.index(
|
|
471
|
-
cols.pop(cols.index(
|
|
479
|
+
cols.pop(cols.index(_CCOLS.capacity)),
|
|
480
|
+
cols.pop(cols.index(_CCOLS.potential)),
|
|
472
481
|
]
|
|
473
482
|
new_cols.extend(cols)
|
|
474
483
|
cycle_df = cycle_df[new_cols]
|
|
@@ -19,7 +19,15 @@ import matplotlib.pyplot as plt
|
|
|
19
19
|
import numpy as np
|
|
20
20
|
|
|
21
21
|
import cellpy
|
|
22
|
+
from cellpycore.config import CurveCols
|
|
23
|
+
|
|
22
24
|
from cellpy.parameters.internal_settings import get_headers_journal
|
|
25
|
+
|
|
26
|
+
# get_cap curve frames use native CurveCols names (#540): potential/cycle_num
|
|
27
|
+
# replace the legacy voltage/cycle. The capacity-curve plotters below default
|
|
28
|
+
# their x/y/z column selectors to these. (Summary and ICA collectors use their
|
|
29
|
+
# own schemas and are left untouched.)
|
|
30
|
+
_CCOLS = CurveCols()
|
|
23
31
|
from cellpy.readers.data_structures import group_by_interpolate
|
|
24
32
|
from cellpy.utils.batch import Batch
|
|
25
33
|
from cellpy.utils.helpers import concat_summaries
|
|
@@ -1163,9 +1171,14 @@ class BatchSummaryCollector(BatchCollector):
|
|
|
1163
1171
|
wide_cols = []
|
|
1164
1172
|
value_cols = []
|
|
1165
1173
|
sort_by = []
|
|
1174
|
+
# summary collectors label the cycle column "cycle"; curve collectors
|
|
1175
|
+
# carry the native CurveCols name "cycle_num" (#540).
|
|
1166
1176
|
if "cycle" in cols:
|
|
1167
1177
|
index = "cycle"
|
|
1168
1178
|
cols.remove("cycle")
|
|
1179
|
+
elif _CCOLS.cycle_num in cols:
|
|
1180
|
+
index = _CCOLS.cycle_num
|
|
1181
|
+
cols.remove(_CCOLS.cycle_num)
|
|
1169
1182
|
else:
|
|
1170
1183
|
print("Could not find index")
|
|
1171
1184
|
return self.data
|
|
@@ -1965,9 +1978,9 @@ def spread_plot(curves, plotly_arguments=None, y_label_mapper=None, **kwargs):
|
|
|
1965
1978
|
|
|
1966
1979
|
def sequence_plotter(
|
|
1967
1980
|
collected_curves: pd.DataFrame,
|
|
1968
|
-
x: str =
|
|
1969
|
-
y: str =
|
|
1970
|
-
z: str =
|
|
1981
|
+
x: str = _CCOLS.capacity,
|
|
1982
|
+
y: str = _CCOLS.potential,
|
|
1983
|
+
z: str = _CCOLS.cycle_num,
|
|
1971
1984
|
g: str = "cell",
|
|
1972
1985
|
standard_deviation: str = None,
|
|
1973
1986
|
group: str = hdr_journal.group,
|
|
@@ -2359,10 +2372,10 @@ def sequence_plotter(
|
|
|
2359
2372
|
seaborn_arguments["height"] = kwargs.pop("height", 3)
|
|
2360
2373
|
seaborn_arguments["aspect"] = kwargs.pop("height", 1)
|
|
2361
2374
|
sns.set_theme(style="darkgrid")
|
|
2362
|
-
x = seaborn_arguments.get("x",
|
|
2363
|
-
y = seaborn_arguments.get("y",
|
|
2375
|
+
x = seaborn_arguments.get("x", _CCOLS.capacity)
|
|
2376
|
+
y = seaborn_arguments.get("y", _CCOLS.potential)
|
|
2364
2377
|
row = seaborn_arguments.get("row", hdr_journal.group)
|
|
2365
|
-
hue = seaborn_arguments.get("hue",
|
|
2378
|
+
hue = seaborn_arguments.get("hue", _CCOLS.cycle_num)
|
|
2366
2379
|
col = seaborn_arguments.get("col", hdr_journal.sub_group)
|
|
2367
2380
|
height = seaborn_arguments.get("height", 3)
|
|
2368
2381
|
aspect = seaborn_arguments.get("aspect", 1)
|
|
@@ -2520,9 +2533,9 @@ def sequence_plotter(
|
|
|
2520
2533
|
def _cycles_plotter(
|
|
2521
2534
|
collected_curves,
|
|
2522
2535
|
cycles=None,
|
|
2523
|
-
x=
|
|
2524
|
-
y=
|
|
2525
|
-
z=
|
|
2536
|
+
x=_CCOLS.capacity,
|
|
2537
|
+
y=_CCOLS.potential,
|
|
2538
|
+
z=_CCOLS.cycle_num,
|
|
2526
2539
|
g="cell",
|
|
2527
2540
|
standard_deviation=None,
|
|
2528
2541
|
default_title="Charge-Discharge Curves",
|
|
@@ -2579,7 +2592,7 @@ def _cycles_plotter(
|
|
|
2579
2592
|
if cycles is not None:
|
|
2580
2593
|
number_of_figs = len(cycles)
|
|
2581
2594
|
else:
|
|
2582
|
-
number_of_figs = len(collected_curves[
|
|
2595
|
+
number_of_figs = len(collected_curves[_CCOLS.cycle_num].unique())
|
|
2583
2596
|
elif method == "summary":
|
|
2584
2597
|
number_of_figs = len(collected_curves["variable"].unique())
|
|
2585
2598
|
sub_fig_min_height = 300
|
|
@@ -2889,9 +2902,9 @@ def cycles_plotter(
|
|
|
2889
2902
|
|
|
2890
2903
|
return _cycles_plotter(
|
|
2891
2904
|
collected_curves,
|
|
2892
|
-
x=
|
|
2893
|
-
y=
|
|
2894
|
-
z=
|
|
2905
|
+
x=_CCOLS.capacity,
|
|
2906
|
+
y=_CCOLS.potential,
|
|
2907
|
+
z=_CCOLS.cycle_num,
|
|
2895
2908
|
g="cell",
|
|
2896
2909
|
x_unit=x_unit,
|
|
2897
2910
|
y_unit=y_unit,
|
|
@@ -13,9 +13,15 @@ from scipy.signal import savgol_filter
|
|
|
13
13
|
from scipy.integrate import simpson
|
|
14
14
|
from scipy.ndimage.filters import gaussian_filter1d
|
|
15
15
|
|
|
16
|
+
from cellpycore.config import CurveCols
|
|
17
|
+
|
|
16
18
|
from cellpy.exceptions import NullData
|
|
17
19
|
from cellpy.readers.data_structures import collect_capacity_curves
|
|
18
20
|
|
|
21
|
+
# get_cap curve frames use native CurveCols names (#540): potential, not voltage.
|
|
22
|
+
# (ica's own dQ/dV output frame keeps its "voltage"/"dq" schema for now.)
|
|
23
|
+
_CCOLS = CurveCols()
|
|
24
|
+
|
|
19
25
|
|
|
20
26
|
# TODO: @jepe - documentation and tests
|
|
21
27
|
# TODO: @jepe - fitting of o-c curves and differentiation
|
|
@@ -488,7 +494,7 @@ def dqdv_cycle(cycle_df, splitter=True, label_direction=False, **kwargs):
|
|
|
488
494
|
# first
|
|
489
495
|
try:
|
|
490
496
|
converter = Converter(**kwargs)
|
|
491
|
-
converter.set_data(c_first[
|
|
497
|
+
converter.set_data(c_first[_CCOLS.capacity], c_first[_CCOLS.potential])
|
|
492
498
|
converter.inspect_data()
|
|
493
499
|
converter.pre_process_data()
|
|
494
500
|
converter.increment_data()
|
|
@@ -516,7 +522,7 @@ def dqdv_cycle(cycle_df, splitter=True, label_direction=False, **kwargs):
|
|
|
516
522
|
# last
|
|
517
523
|
try:
|
|
518
524
|
converter = Converter(**kwargs)
|
|
519
|
-
converter.set_data(c_last[
|
|
525
|
+
converter.set_data(c_last[_CCOLS.capacity], c_last[_CCOLS.potential])
|
|
520
526
|
converter.inspect_data()
|
|
521
527
|
converter.pre_process_data()
|
|
522
528
|
converter.increment_data()
|
|
@@ -620,7 +626,8 @@ def dqdv_cycles(cycles_df, not_merged=False, label_direction=False, **kwargs):
|
|
|
620
626
|
return pd.DataFrame()
|
|
621
627
|
|
|
622
628
|
ica_dfs = list()
|
|
623
|
-
|
|
629
|
+
# cycles_df is a get_cap curve frame — native CurveCols cycle key (#540).
|
|
630
|
+
cycle_group = cycles_df.groupby(_CCOLS.cycle_num)
|
|
624
631
|
keys = list()
|
|
625
632
|
for cycle_number, cycle in cycle_group:
|
|
626
633
|
cycle = cycle.dropna()
|
|
@@ -19,6 +19,8 @@ import matplotlib.pyplot as plt
|
|
|
19
19
|
import pandas as pd
|
|
20
20
|
import numpy as np
|
|
21
21
|
|
|
22
|
+
from cellpycore.config import CurveCols
|
|
23
|
+
|
|
22
24
|
from cellpy.parameters.internal_settings import (
|
|
23
25
|
get_headers_journal,
|
|
24
26
|
get_headers_normal,
|
|
@@ -27,6 +29,10 @@ from cellpy.parameters.internal_settings import (
|
|
|
27
29
|
)
|
|
28
30
|
from cellpy.utils import helpers
|
|
29
31
|
|
|
32
|
+
# get_cap curve frames use native CurveCols names (#540): potential/cycle_num
|
|
33
|
+
# replace the legacy voltage/cycle (used by cycles_plot below).
|
|
34
|
+
_CCOLS = CurveCols()
|
|
35
|
+
|
|
30
36
|
plotly_available = importlib.util.find_spec("plotly") is not None
|
|
31
37
|
seaborn_available = importlib.util.find_spec("seaborn") is not None
|
|
32
38
|
|
|
@@ -5782,14 +5788,14 @@ def cycles_plot(
|
|
|
5782
5788
|
)
|
|
5783
5789
|
df = c.get_cap(cycles=cycles, **kw_arguments)
|
|
5784
5790
|
# Temporary fix to ensure that the cycles are plotted in the correct order:
|
|
5785
|
-
df = df.sort_values(by=[
|
|
5791
|
+
df = df.sort_values(by=[_CCOLS.cycle_num, "direction"])
|
|
5786
5792
|
|
|
5787
|
-
selector = df[
|
|
5793
|
+
selector = df[_CCOLS.cycle_num] <= formation_cycles
|
|
5788
5794
|
form_cycles = df.loc[selector, :]
|
|
5789
5795
|
rest_cycles = df.loc[~selector, :]
|
|
5790
5796
|
|
|
5791
|
-
n_form_cycles = len(form_cycles[
|
|
5792
|
-
n_rest_cycles = len(rest_cycles[
|
|
5797
|
+
n_form_cycles = len(form_cycles[_CCOLS.cycle_num].unique())
|
|
5798
|
+
n_rest_cycles = len(rest_cycles[_CCOLS.cycle_num].unique())
|
|
5793
5799
|
|
|
5794
5800
|
capacity_unit = _get_capacity_unit(c, mode=mode)
|
|
5795
5801
|
|
|
@@ -5888,8 +5894,8 @@ def _cycles_plotter_matplotlib(
|
|
|
5888
5894
|
"Warning: try setting the figsize to (8, 4) or smaller for better visualization"
|
|
5889
5895
|
)
|
|
5890
5896
|
min_cycle, max_cycle = (
|
|
5891
|
-
config.form_cycles[
|
|
5892
|
-
config.form_cycles[
|
|
5897
|
+
config.form_cycles[_CCOLS.cycle_num].min(),
|
|
5898
|
+
config.form_cycles[_CCOLS.cycle_num].max(),
|
|
5893
5899
|
)
|
|
5894
5900
|
norm_formation = Normalize(vmin=min_cycle, vmax=max_cycle)
|
|
5895
5901
|
cycle_sequence = np.arange(min_cycle, max_cycle + 1, 1)
|
|
@@ -5904,10 +5910,10 @@ def _cycles_plotter_matplotlib(
|
|
|
5904
5910
|
s_m_formation = matplotlib.cm.ScalarMappable(
|
|
5905
5911
|
cmap=c_m_formation, norm=norm_formation
|
|
5906
5912
|
)
|
|
5907
|
-
for name, group in config.form_cycles.groupby(
|
|
5913
|
+
for name, group in config.form_cycles.groupby(_CCOLS.cycle_num):
|
|
5908
5914
|
ax.plot(
|
|
5909
5915
|
group["capacity"],
|
|
5910
|
-
group[
|
|
5916
|
+
group[_CCOLS.potential],
|
|
5911
5917
|
lw=2, # alpha=0.7,
|
|
5912
5918
|
color=s_m_formation.to_rgba(name),
|
|
5913
5919
|
label=f"Cycle {name}",
|
|
@@ -5916,8 +5922,8 @@ def _cycles_plotter_matplotlib(
|
|
|
5916
5922
|
s_m_formation,
|
|
5917
5923
|
ax=ax, # label="Formation Cycle",
|
|
5918
5924
|
ticks=np.arange(
|
|
5919
|
-
config.form_cycles[
|
|
5920
|
-
config.form_cycles[
|
|
5925
|
+
config.form_cycles[_CCOLS.cycle_num].min(),
|
|
5926
|
+
config.form_cycles[_CCOLS.cycle_num].max() + 1,
|
|
5921
5927
|
1,
|
|
5922
5928
|
),
|
|
5923
5929
|
shrink=shrink,
|
|
@@ -5932,22 +5938,22 @@ def _cycles_plotter_matplotlib(
|
|
|
5932
5938
|
)
|
|
5933
5939
|
|
|
5934
5940
|
norm = Normalize(
|
|
5935
|
-
vmin=config.rest_cycles[
|
|
5941
|
+
vmin=config.rest_cycles[_CCOLS.cycle_num].min(), vmax=config.rest_cycles[_CCOLS.cycle_num].max()
|
|
5936
5942
|
)
|
|
5937
5943
|
if config.cut_colorbar:
|
|
5938
5944
|
cycle_sequence = np.arange(
|
|
5939
|
-
config.rest_cycles[
|
|
5945
|
+
config.rest_cycles[_CCOLS.cycle_num].min(), config.rest_cycles[_CCOLS.cycle_num].max() + 1, 1
|
|
5940
5946
|
)
|
|
5941
|
-
n = int(np.round(1.2 * config.rest_cycles[
|
|
5947
|
+
n = int(np.round(1.2 * config.rest_cycles[_CCOLS.cycle_num].max()))
|
|
5942
5948
|
c_m = ListedColormap(plt.get_cmap(config.colormap, n)(cycle_sequence))
|
|
5943
5949
|
else:
|
|
5944
5950
|
c_m = plt.get_cmap(config.colormap)
|
|
5945
5951
|
|
|
5946
5952
|
s_m = matplotlib.cm.ScalarMappable(cmap=c_m, norm=norm)
|
|
5947
|
-
for name, group in config.rest_cycles.groupby(
|
|
5953
|
+
for name, group in config.rest_cycles.groupby(_CCOLS.cycle_num):
|
|
5948
5954
|
ax.plot(
|
|
5949
5955
|
group["capacity"],
|
|
5950
|
-
group[
|
|
5956
|
+
group[_CCOLS.potential],
|
|
5951
5957
|
lw=1,
|
|
5952
5958
|
color=s_m.to_rgba(name),
|
|
5953
5959
|
label=f"Cycle {name}",
|
|
@@ -6000,9 +6006,9 @@ def _cycles_plotter_plotly(
|
|
|
6000
6006
|
colormap = config.colormap
|
|
6001
6007
|
|
|
6002
6008
|
if config.cut_colorbar:
|
|
6003
|
-
range_color = [df[
|
|
6009
|
+
range_color = [df[_CCOLS.cycle_num].min(), 1.2 * df[_CCOLS.cycle_num].max()]
|
|
6004
6010
|
else:
|
|
6005
|
-
range_color = [df[
|
|
6011
|
+
range_color = [df[_CCOLS.cycle_num].min(), df[_CCOLS.cycle_num].max()]
|
|
6006
6012
|
if (
|
|
6007
6013
|
config.n_rest_cycles is not None
|
|
6008
6014
|
and config.n_rest_cycles < plotly_max_individual_traces_for_lines
|
|
@@ -6021,12 +6027,12 @@ def _cycles_plotter_plotly(
|
|
|
6021
6027
|
fig = px.line(
|
|
6022
6028
|
config.rest_cycles,
|
|
6023
6029
|
x="capacity",
|
|
6024
|
-
y=
|
|
6025
|
-
color=
|
|
6030
|
+
y=_CCOLS.potential,
|
|
6031
|
+
color=_CCOLS.cycle_num,
|
|
6026
6032
|
title=config.fig_title,
|
|
6027
6033
|
labels={
|
|
6028
6034
|
"capacity": f"Capacity ({config.capacity_unit})",
|
|
6029
|
-
|
|
6035
|
+
_CCOLS.potential: f"Voltage ({c.cellpy_units.voltage})",
|
|
6030
6036
|
},
|
|
6031
6037
|
color_discrete_sequence=cmap,
|
|
6032
6038
|
)
|
|
@@ -6037,12 +6043,12 @@ def _cycles_plotter_plotly(
|
|
|
6037
6043
|
fig = px.scatter(
|
|
6038
6044
|
config.rest_cycles,
|
|
6039
6045
|
x="capacity",
|
|
6040
|
-
y=
|
|
6046
|
+
y=_CCOLS.potential,
|
|
6041
6047
|
title=config.fig_title,
|
|
6042
|
-
color=
|
|
6048
|
+
color=_CCOLS.cycle_num,
|
|
6043
6049
|
labels={
|
|
6044
6050
|
"capacity": f"Capacity ({config.capacity_unit})",
|
|
6045
|
-
|
|
6051
|
+
_CCOLS.potential: f"Voltage ({c.cellpy_units.voltage})",
|
|
6046
6052
|
},
|
|
6047
6053
|
color_continuous_scale=colormap,
|
|
6048
6054
|
range_color=range_color,
|
|
@@ -6051,11 +6057,11 @@ def _cycles_plotter_plotly(
|
|
|
6051
6057
|
fig.update_traces(mode="lines+markers", line_color="white", line_width=1)
|
|
6052
6058
|
|
|
6053
6059
|
if not config.form_cycles.empty and config.show_formation:
|
|
6054
|
-
for name, group in config.form_cycles.groupby(
|
|
6060
|
+
for name, group in config.form_cycles.groupby(_CCOLS.cycle_num):
|
|
6055
6061
|
logging.info(f"using go.Scatter for formation cycle(s) {name}")
|
|
6056
6062
|
trace = go.Scatter(
|
|
6057
6063
|
x=group["capacity"],
|
|
6058
|
-
y=group[
|
|
6064
|
+
y=group[_CCOLS.potential],
|
|
6059
6065
|
name=f"{name} (f.c.)",
|
|
6060
6066
|
hovertemplate=f"Formation Cycle {name}<br>Capacity: %{{x}}<br>Voltage: %{{y}}",
|
|
6061
6067
|
mode="lines",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/2026-07-09_archived_issues.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|