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.
Files changed (398) hide show
  1. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/HISTORY.md +7 -0
  2. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/PKG-INFO +1 -1
  3. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/tabular.py +8 -2
  4. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/capacity_curves.py +23 -14
  5. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/collectors.py +26 -13
  6. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/ica.py +10 -3
  7. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/plotutils.py +31 -25
  8. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.aliases +0 -0
  9. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/commands/build.md +0 -0
  10. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/commands/create-original-issue-file.md +0 -0
  11. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/cellpy-core-migration.mdc +0 -0
  12. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/cellpy-workspace.mdc +0 -0
  13. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/graphify.mdc +0 -0
  14. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/issueflow-rules.mdc +0 -0
  15. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/kiss.mdc +0 -0
  16. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/rules/this-project.mdc +0 -0
  17. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/caveman/SKILL.md +0 -0
  18. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/grill-me/SKILL.md +0 -0
  19. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow/SKILL.md +0 -0
  20. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-archive/SKILL.md +0 -0
  21. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-cleanup/SKILL.md +0 -0
  22. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-close/SKILL.md +0 -0
  23. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-comments/SKILL.md +0 -0
  24. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-cycle/SKILL.md +0 -0
  25. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-epic/SKILL.md +0 -0
  26. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-fix/SKILL.md +0 -0
  27. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-graphify/SKILL.md +0 -0
  28. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-history-update/SKILL.md +0 -0
  29. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-init/SKILL.md +0 -0
  30. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-pause/SKILL.md +0 -0
  31. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-pick/SKILL.md +0 -0
  32. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-plan/SKILL.md +0 -0
  33. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-start/SKILL.md +0 -0
  34. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-status/SKILL.md +0 -0
  35. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-version-bump/SKILL.md +0 -0
  36. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/iflow-yolo/SKILL.md +0 -0
  37. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.cursor/skills/issueflow-build/SKILL.md +0 -0
  38. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.dockerignore +0 -0
  39. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.editorconfig +0 -0
  40. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.env_example +0 -0
  41. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.gitattributes +0 -0
  42. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.gitignore +0 -0
  43. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/.gitkeep +0 -0
  44. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/README.md +0 -0
  45. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/migrate_prms_calls.py +0 -0
  46. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/scan_hardcoded_headers.py +0 -0
  47. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/00-tools/scan_member_usage.py +0 -0
  48. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/01-current-issues/.gitkeep +0 -0
  49. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/.gitkeep +0 -0
  50. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_original.md +0 -0
  51. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_plan.md +0 -0
  52. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue453_status.md +0 -0
  53. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/02-partly-solved-issues/issue459_original.md +0 -0
  54. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/.gitkeep +0 -0
  55. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/2026-07-09_archived_issues.md +0 -0
  56. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_original.md +0 -0
  57. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_plan.md +0 -0
  58. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue372_status.md +0 -0
  59. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_original.md +0 -0
  60. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_plan.md +0 -0
  61. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue375_status.md +0 -0
  62. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_original.md +0 -0
  63. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_plan.md +0 -0
  64. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue381_status.md +0 -0
  65. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_original.md +0 -0
  66. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_plan.md +0 -0
  67. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue391_status.md +0 -0
  68. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_original.md +0 -0
  69. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_plan.md +0 -0
  70. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue407_status.md +0 -0
  71. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_original.md +0 -0
  72. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_plan.md +0 -0
  73. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue415_status.md +0 -0
  74. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue425_original.md +0 -0
  75. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue425_status.md +0 -0
  76. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_original.md +0 -0
  77. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_plan.md +0 -0
  78. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue428_status.md +0 -0
  79. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_original.md +0 -0
  80. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_plan.md +0 -0
  81. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue429_status.md +0 -0
  82. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_original.md +0 -0
  83. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_plan.md +0 -0
  84. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue430_status.md +0 -0
  85. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_original.md +0 -0
  86. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_plan.md +0 -0
  87. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue431_status.md +0 -0
  88. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_original.md +0 -0
  89. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_plan.md +0 -0
  90. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue432_status.md +0 -0
  91. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_original.md +0 -0
  92. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_plan.md +0 -0
  93. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue433_status.md +0 -0
  94. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_original.md +0 -0
  95. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_plan.md +0 -0
  96. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue434_status.md +0 -0
  97. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_original.md +0 -0
  98. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_plan.md +0 -0
  99. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue435_status.md +0 -0
  100. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_original.md +0 -0
  101. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_plan.md +0 -0
  102. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue436_status.md +0 -0
  103. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_original.md +0 -0
  104. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_plan.md +0 -0
  105. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue437_status.md +0 -0
  106. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_original.md +0 -0
  107. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_plan.md +0 -0
  108. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue438_status.md +0 -0
  109. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_original.md +0 -0
  110. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_plan.md +0 -0
  111. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue439_status.md +0 -0
  112. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_original.md +0 -0
  113. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_plan.md +0 -0
  114. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue446_status.md +0 -0
  115. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_original.md +0 -0
  116. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_plan.md +0 -0
  117. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue447_status.md +0 -0
  118. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_original.md +0 -0
  119. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_plan.md +0 -0
  120. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue449_status.md +0 -0
  121. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_original.md +0 -0
  122. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_plan.md +0 -0
  123. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue450_status.md +0 -0
  124. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_original.md +0 -0
  125. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_plan.md +0 -0
  126. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue451_status.md +0 -0
  127. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_original.md +0 -0
  128. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_plan.md +0 -0
  129. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue452_status.md +0 -0
  130. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_original.md +0 -0
  131. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_plan.md +0 -0
  132. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue454_status.md +0 -0
  133. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_original.md +0 -0
  134. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_plan.md +0 -0
  135. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue455_status.md +0 -0
  136. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_original.md +0 -0
  137. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_plan.md +0 -0
  138. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue457_status.md +0 -0
  139. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_original.md +0 -0
  140. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_plan.md +0 -0
  141. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue458_status.md +0 -0
  142. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_original.md +0 -0
  143. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_plan.md +0 -0
  144. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue465_status.md +0 -0
  145. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_original.md +0 -0
  146. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_plan.md +0 -0
  147. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue466_status.md +0 -0
  148. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue467_original.md +0 -0
  149. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_original.md +0 -0
  150. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_plan.md +0 -0
  151. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue476_status.md +0 -0
  152. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_original.md +0 -0
  153. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_plan.md +0 -0
  154. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue479_status.md +0 -0
  155. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue491_original.md +0 -0
  156. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue491_status.md +0 -0
  157. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_original.md +0 -0
  158. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_plan.md +0 -0
  159. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue510_status.md +0 -0
  160. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_original.md +0 -0
  161. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_plan.md +0 -0
  162. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/03-solved-issues/issue537_status.md +0 -0
  163. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/.gitkeep +0 -0
  164. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/bdf-export.md +0 -0
  165. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/build-and-versioning.md +0 -0
  166. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-architecture.excalidraw +0 -0
  167. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-branching.md +0 -0
  168. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-v2-epic.md +0 -0
  169. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpy-workspace-repos.md +0 -0
  170. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/cellpycell-di-restructuring.md +0 -0
  171. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/ci-tiers.md +0 -0
  172. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/filters-and-plot-filtering.md +0 -0
  173. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/otherpath-upath.md +0 -0
  174. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/release-procedure.md +0 -0
  175. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/testing-and-coverage.md +0 -0
  176. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/this-project.md +0 -0
  177. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/04-designs-and-guides/v2-cellpycore-pin-gate.md +0 -0
  178. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.issueflows/05-epics/.gitkeep +0 -0
  179. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/.readthedocs.yaml +0 -0
  180. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/AGENTS.md +0 -0
  181. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/AUTHORS.md +0 -0
  182. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/CODE_OF_CONDUCT.md +0 -0
  183. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/CONTRIBUTING.md +0 -0
  184. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/DEPRECATIONS.md +0 -0
  185. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/LICENSE.md +0 -0
  186. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/README.md +0 -0
  187. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_data_structure.md +0 -0
  188. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_folder_structure.md +0 -0
  189. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_packaging_pypi.md +0 -0
  190. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_cellpy_setup.md +0 -0
  191. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_conda_package.md +0 -0
  192. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_docs.md +0 -0
  193. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_loaders_and_instruments.md +0 -0
  194. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/dev_various.md +0 -0
  195. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_developers_guide/index.md +0 -0
  196. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/01_getting_started_tutorial.md +0 -0
  197. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/02_read_cell_data.md +0 -0
  198. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/03_more_about_get.md +0 -0
  199. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/04_other_interactions.md +0 -0
  200. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/05_configuring.md +0 -0
  201. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/06_pandas.md +0 -0
  202. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/07_data_mining.md +0 -0
  203. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basic_interactions/08_the_cellpy_cmd.md +0 -0
  204. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/basics.md +0 -0
  205. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/examples.md +0 -0
  206. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/index.md +0 -0
  207. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/01_arbin.md +0 -0
  208. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/02_maccor.md +0 -0
  209. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/03_PEC.md +0 -0
  210. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/04_Neware.md +0 -0
  211. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/05_biologics.md +0 -0
  212. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders/06_custom.md +0 -0
  213. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/loaders.md +0 -0
  214. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_001.png +0 -0
  215. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_002.png +0 -0
  216. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_get_cap.ipynb +0 -0
  217. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_simple_plot.ipynb +0 -0
  218. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_templates.ipynb +0 -0
  219. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks/tutorial_xxx-checkpoint.ipynb +0 -0
  220. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/notebooks.md +0 -0
  221. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/tips_and_tricks.md +0 -0
  222. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/batch.md +0 -0
  223. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/collectors.md +0 -0
  224. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/custom_file_loaders.md +0 -0
  225. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/easyplot.md +0 -0
  226. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig1.png +0 -0
  227. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig2.png +0 -0
  228. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/ica.md +0 -0
  229. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/plotting.md +0 -0
  230. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/templates.md +0 -0
  231. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils/tut_ocv_rlx.md +0 -0
  232. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_examples_and_tutorials/utils.md +0 -0
  233. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/formats.md +0 -0
  234. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/index.md +0 -0
  235. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/installation.md +0 -0
  236. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/_main_description/usage.md +0 -0
  237. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/_old_docs/index.md +0 -0
  238. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/README.md +0 -0
  239. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/__init__.py +0 -0
  240. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/baselines/v1x_ubuntu_py313.json +0 -0
  241. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/check_baseline.py +0 -0
  242. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/conftest.py +0 -0
  243. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/paths.py +0 -0
  244. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/benchmarks/test_performance.py +0 -0
  245. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/__init__.py +0 -0
  246. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/_deprecation.py +0 -0
  247. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/_version.py +0 -0
  248. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/cli.py +0 -0
  249. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/__init__.py +0 -0
  250. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/legacy.py +0 -0
  251. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/loader.py +0 -0
  252. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/migrate.py +0 -0
  253. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/models.py +0 -0
  254. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/session.py +0 -0
  255. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/sources.py +0 -0
  256. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/config/types.py +0 -0
  257. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exceptions.py +0 -0
  258. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/__init__.py +0 -0
  259. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/exporters/bdf.py +0 -0
  260. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/__init__.py +0 -0
  261. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/cycles.py +0 -0
  262. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/filters/summary.py +0 -0
  263. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/__init__.py +0 -0
  264. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/connections.py +0 -0
  265. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/internals/otherpath.py +0 -0
  266. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/__init__.py +0 -0
  267. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/__init__.py +0 -0
  268. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_alias_module.py +0 -0
  269. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_importing.py +0 -0
  270. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_module.py +0 -0
  271. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_syncronized.py +0 -0
  272. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/_version.py +0 -0
  273. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/apipkg/py.typed +0 -0
  274. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/LICENSE +0 -0
  275. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/__init__.py +0 -0
  276. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/btsda.py +0 -0
  277. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/cli.py +0 -0
  278. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/dicts.py +0 -0
  279. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/formats.py +0 -0
  280. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/main.py +0 -0
  281. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/nda.py +0 -0
  282. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/ndax.py +0 -0
  283. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/utils.py +0 -0
  284. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/libs/local_fastnda/version.py +0 -0
  285. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/log.py +0 -0
  286. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/logging.json +0 -0
  287. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/.cellpy_prms_default.conf +0 -0
  288. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/__init__.py +0 -0
  289. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/_shim.py +0 -0
  290. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/internal_settings.py +0 -0
  291. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/legacy/__init__.py +0 -0
  292. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/legacy/update_headers.py +0 -0
  293. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/prmreader.py +0 -0
  294. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/parameters/prms.py +0 -0
  295. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/__init__.py +0 -0
  296. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/__init__.py +0 -0
  297. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/dtype.py +0 -0
  298. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/fids.py +0 -0
  299. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/format.py +0 -0
  300. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/keys.py +0 -0
  301. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/legacy_read.py +0 -0
  302. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/meta.py +0 -0
  303. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/meta_archive.py +0 -0
  304. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/read.py +0 -0
  305. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/selectors.py +0 -0
  306. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/translate.py +0 -0
  307. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/v9.py +0 -0
  308. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellpy_file/write.py +0 -0
  309. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/cellreader.py +0 -0
  310. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/data_structures.py +0 -0
  311. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/dbreader.py +0 -0
  312. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/do.py +0 -0
  313. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/filefinder.py +0 -0
  314. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/SQL Table IDs.txt +0 -0
  315. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/__init__.py +0 -0
  316. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_res.py +0 -0
  317. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql.py +0 -0
  318. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_7.py +0 -0
  319. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_config.py +0 -0
  320. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_csv.py +0 -0
  321. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_h5.py +0 -0
  322. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/arbin_sql_xlsx.py +0 -0
  323. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/base.py +0 -0
  324. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/batmo_bdf.py +0 -0
  325. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/biologics_mpr.py +0 -0
  326. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/__init__.py +0 -0
  327. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/batmo_bdf_bdf.py +0 -0
  328. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_one.py +0 -0
  329. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_three.py +0 -0
  330. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_two.py +0 -0
  331. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/maccor_txt_zero.py +0 -0
  332. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_one.py +0 -0
  333. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_two.py +0 -0
  334. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/configurations/neware_txt_zero.py +0 -0
  335. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/custom.py +0 -0
  336. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/ext_nda_reader.py +0 -0
  337. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/loader_specific_modules/__init__.py +0 -0
  338. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/loader_specific_modules/biologic_file_format.py +0 -0
  339. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/local_instrument.py +0 -0
  340. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/maccor_txt.py +0 -0
  341. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_nda.py +0 -0
  342. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_txt.py +0 -0
  343. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/neware_xlsx.py +0 -0
  344. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/pec_csv.py +0 -0
  345. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/__init__.py +0 -0
  346. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/post_processors.py +0 -0
  347. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/instruments/processors/pre_processors.py +0 -0
  348. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/json_dbreader.py +0 -0
  349. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/merger.py +0 -0
  350. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/native_core.py +0 -0
  351. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/slicing.py +0 -0
  352. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/sql_dbreader.py +0 -0
  353. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/readers/test_meta.py +0 -0
  354. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/__init__.py +0 -0
  355. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch.py +0 -0
  356. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/__init__.py +0 -0
  357. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_analyzers.py +0 -0
  358. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_core.py +0 -0
  359. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_experiments.py +0 -0
  360. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_exporters.py +0 -0
  361. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_helpers.py +0 -0
  362. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_journals.py +0 -0
  363. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_plotters.py +0 -0
  364. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/batch_reporters.py +0 -0
  365. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/dumpers.py +0 -0
  366. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/engines.py +0 -0
  367. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/batch_tools/sqlite_from_excel_db.py +0 -0
  368. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/diagnostics.py +0 -0
  369. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/example_data.py +0 -0
  370. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/helpers.py +0 -0
  371. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/live.py +0 -0
  372. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/ocv_rlx.py +0 -0
  373. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/processor.py +0 -0
  374. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/cellpy/utils/template_registry.py +0 -0
  375. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/README.md +0 -0
  376. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/cellpy/meta.yaml +0 -0
  377. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/conda-recipes/cellpycore/meta.yaml +0 -0
  378. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/dev/regenerate_goldens.py +0 -0
  379. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/Dockerfile.build-test +0 -0
  380. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/README.md +0 -0
  381. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/compose.yml +0 -0
  382. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/data/hello.txt +0 -0
  383. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/docker/sftp-test/data/nested/sample.txt +0 -0
  384. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/environment.yml +0 -0
  385. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/environment_dev.yml +0 -0
  386. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/github_actions_environment.yml +0 -0
  387. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/noxfile.py +0 -0
  388. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/.github/workflows/draft-pdf.yml +0 -0
  389. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/.gitignore +0 -0
  390. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/Cellpy-Utils.jpg +0 -0
  391. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/CellpyCell.jpg +0 -0
  392. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/Figures/CellpyData.jpg +0 -0
  393. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/paper.bib +0 -0
  394. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/paper/paper.md +0 -0
  395. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/pyproject.toml +0 -0
  396. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/scripts/build_test.sh +0 -0
  397. {cellpy-2.0.0a3 → cellpy-2.0.0a4}/scripts/dev_sync.sh +0 -0
  398. {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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cellpy
3
- Version: 2.0.0a3
3
+ Version: 2.0.0a4
4
4
  Summary: Extract and manipulate data from battery data testers.
5
5
  Project-URL: Homepage, https://github.com/jepegit/cellpy
6
6
  Project-URL: Repository, https://github.com/jepegit/cellpy
@@ -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["capacity"]
78
- v = df["voltage"]
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
- {"capacity": [externals.numpy.nan], "voltage": [externals.numpy.nan]}
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 = "voltage"
395
- y_col = "capacity"
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
- "voltage": _first_step_v,
405
- "capacity": _first_step_c,
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["direction"] = -1
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
- "voltage": _last_step_v.values,
429
- "capacity": _last_step_c.values,
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["direction"] = 1
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, "cycle", current_cycle)
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("capacity")),
471
- cols.pop(cols.index("voltage")),
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 = "capacity",
1969
- y: str = "voltage",
1970
- z: str = "cycle",
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", "capacity")
2363
- y = seaborn_arguments.get("y", "voltage")
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", "cycle")
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="capacity",
2524
- y="voltage",
2525
- z="cycle",
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["cycle"].unique())
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="capacity",
2893
- y="voltage",
2894
- z="cycle",
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["capacity"], c_first["voltage"])
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["capacity"], c_last["voltage"])
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
- cycle_group = cycles_df.groupby("cycle")
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=["cycle", "direction"])
5791
+ df = df.sort_values(by=[_CCOLS.cycle_num, "direction"])
5786
5792
 
5787
- selector = df["cycle"] <= formation_cycles
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["cycle"].unique())
5792
- n_rest_cycles = len(rest_cycles["cycle"].unique())
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["cycle"].min(),
5892
- config.form_cycles["cycle"].max(),
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("cycle"):
5913
+ for name, group in config.form_cycles.groupby(_CCOLS.cycle_num):
5908
5914
  ax.plot(
5909
5915
  group["capacity"],
5910
- group["voltage"],
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["cycle"].min(),
5920
- config.form_cycles["cycle"].max() + 1,
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["cycle"].min(), vmax=config.rest_cycles["cycle"].max()
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["cycle"].min(), config.rest_cycles["cycle"].max() + 1, 1
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["cycle"].max()))
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("cycle"):
5953
+ for name, group in config.rest_cycles.groupby(_CCOLS.cycle_num):
5948
5954
  ax.plot(
5949
5955
  group["capacity"],
5950
- group["voltage"],
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["cycle"].min(), 1.2 * df["cycle"].max()]
6009
+ range_color = [df[_CCOLS.cycle_num].min(), 1.2 * df[_CCOLS.cycle_num].max()]
6004
6010
  else:
6005
- range_color = [df["cycle"].min(), df["cycle"].max()]
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="voltage",
6025
- color="cycle",
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
- "voltage": f"Voltage ({c.cellpy_units.voltage})",
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="voltage",
6046
+ y=_CCOLS.potential,
6041
6047
  title=config.fig_title,
6042
- color="cycle",
6048
+ color=_CCOLS.cycle_num,
6043
6049
  labels={
6044
6050
  "capacity": f"Capacity ({config.capacity_unit})",
6045
- "voltage": f"Voltage ({c.cellpy_units.voltage})",
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("cycle"):
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["voltage"],
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