cellpy 2.1.3.post2__tar.gz → 2.1.3.post3__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 (538) hide show
  1. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/PKG-INFO +1 -1
  2. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/cli.py +66 -1
  3. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/cli_api.py +127 -0
  4. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.aliases +0 -0
  5. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/commands/build.md +0 -0
  6. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/commands/create-original-issue-file.md +0 -0
  7. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/cellpy-core-migration.mdc +0 -0
  8. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/cellpy-workspace.mdc +0 -0
  9. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/graphify.mdc +0 -0
  10. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/issueflow-rules.mdc +0 -0
  11. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/kiss.mdc +0 -0
  12. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/rules/this-project.mdc +0 -0
  13. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/caveman/SKILL.md +0 -0
  14. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/gh-ci/SKILL.md +0 -0
  15. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/grill-me/SKILL.md +0 -0
  16. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow/SKILL.md +0 -0
  17. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-archive/SKILL.md +0 -0
  18. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-auto/SKILL.md +0 -0
  19. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-build/SKILL.md +0 -0
  20. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-cleanup/SKILL.md +0 -0
  21. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-close/SKILL.md +0 -0
  22. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-comments/SKILL.md +0 -0
  23. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-cycle/SKILL.md +0 -0
  24. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-doctor/SKILL.md +0 -0
  25. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-epic/SKILL.md +0 -0
  26. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-fix/SKILL.md +0 -0
  27. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-graphify/SKILL.md +0 -0
  28. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-history-update/SKILL.md +0 -0
  29. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-init/SKILL.md +0 -0
  30. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-issue/SKILL.md +0 -0
  31. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-pause/SKILL.md +0 -0
  32. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-pick/SKILL.md +0 -0
  33. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-plan/SKILL.md +0 -0
  34. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-review/SKILL.md +0 -0
  35. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-status/SKILL.md +0 -0
  36. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-version-bump/SKILL.md +0 -0
  37. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/iflow-yolo/SKILL.md +0 -0
  38. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.cursor/skills/issueflow-build/SKILL.md +0 -0
  39. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.dockerignore +0 -0
  40. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.editorconfig +0 -0
  41. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.env_example +0 -0
  42. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.gitattributes +0 -0
  43. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.gitignore +0 -0
  44. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/00-tools/.gitkeep +0 -0
  45. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/00-tools/README.md +0 -0
  46. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/00-tools/migrate_prms_calls.py +0 -0
  47. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/00-tools/scan_hardcoded_headers.py +0 -0
  48. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/00-tools/scan_member_usage.py +0 -0
  49. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/01-current-issues/.gitkeep +0 -0
  50. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/01-current-issues/issue985_original.md +0 -0
  51. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/01-current-issues/issue985_status.md +0 -0
  52. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/02-partly-solved-issues/.gitkeep +0 -0
  53. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/.gitkeep +0 -0
  54. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/2026-07-09_archived_issues.md +0 -0
  55. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/2026-07-31_archived_issues.md +0 -0
  56. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/cycle_status.md +0 -0
  57. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/cycle_status_2026-07-31.md +0 -0
  58. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/cycle_status_2026-08-08.md +0 -0
  59. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/cycle_status_2026-08-09.md +0 -0
  60. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/cycle_status_2026-08-25.md +0 -0
  61. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue459_original.md +0 -0
  62. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue786_original.md +0 -0
  63. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue786_plan.md +0 -0
  64. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue786_status.md +0 -0
  65. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue799_original.md +0 -0
  66. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue799_plan.md +0 -0
  67. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue799_status.md +0 -0
  68. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue800_original.md +0 -0
  69. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue800_plan.md +0 -0
  70. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue800_status.md +0 -0
  71. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue801_original.md +0 -0
  72. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue801_plan.md +0 -0
  73. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue801_status.md +0 -0
  74. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue802_original.md +0 -0
  75. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue802_plan.md +0 -0
  76. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue802_status.md +0 -0
  77. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue804_original.md +0 -0
  78. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue804_plan.md +0 -0
  79. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue804_status.md +0 -0
  80. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue809_original.md +0 -0
  81. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue809_plan.md +0 -0
  82. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue809_status.md +0 -0
  83. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue816_original.md +0 -0
  84. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue816_plan.md +0 -0
  85. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue816_status.md +0 -0
  86. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue817_original.md +0 -0
  87. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue817_plan.md +0 -0
  88. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue817_status.md +0 -0
  89. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue818_original.md +0 -0
  90. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue818_plan.md +0 -0
  91. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue818_status.md +0 -0
  92. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue819_original.md +0 -0
  93. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue819_plan.md +0 -0
  94. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue819_status.md +0 -0
  95. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue820_original.md +0 -0
  96. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue820_plan.md +0 -0
  97. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue820_status.md +0 -0
  98. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue821_original.md +0 -0
  99. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue821_plan.md +0 -0
  100. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue821_status.md +0 -0
  101. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue822_original.md +0 -0
  102. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue822_plan.md +0 -0
  103. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue822_status.md +0 -0
  104. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue825_original.md +0 -0
  105. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue825_plan.md +0 -0
  106. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue825_status.md +0 -0
  107. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue837_original.md +0 -0
  108. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue837_plan.md +0 -0
  109. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue837_status.md +0 -0
  110. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue839_original.md +0 -0
  111. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue839_plan.md +0 -0
  112. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue839_status.md +0 -0
  113. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue845_original.md +0 -0
  114. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue845_plan.md +0 -0
  115. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue845_status.md +0 -0
  116. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue846_original.md +0 -0
  117. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue846_plan.md +0 -0
  118. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue846_status.md +0 -0
  119. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue849_original.md +0 -0
  120. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue849_plan.md +0 -0
  121. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue849_status.md +0 -0
  122. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue850_original.md +0 -0
  123. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue850_plan.md +0 -0
  124. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue850_status.md +0 -0
  125. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue851_original.md +0 -0
  126. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue851_plan.md +0 -0
  127. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue851_status.md +0 -0
  128. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue853_original.md +0 -0
  129. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue853_plan.md +0 -0
  130. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue853_status.md +0 -0
  131. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue855_original.md +0 -0
  132. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue855_plan.md +0 -0
  133. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue855_status.md +0 -0
  134. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue862_original.md +0 -0
  135. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue862_plan.md +0 -0
  136. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue862_status.md +0 -0
  137. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue863_original.md +0 -0
  138. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue863_plan.md +0 -0
  139. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue863_status.md +0 -0
  140. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue866_original.md +0 -0
  141. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue866_status.md +0 -0
  142. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue867_original.md +0 -0
  143. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue867_plan.md +0 -0
  144. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue867_status.md +0 -0
  145. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue868_original.md +0 -0
  146. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue868_plan.md +0 -0
  147. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue868_status.md +0 -0
  148. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue869_original.md +0 -0
  149. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue869_plan.md +0 -0
  150. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue869_status.md +0 -0
  151. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue874_original.md +0 -0
  152. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue874_plan.md +0 -0
  153. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue874_status.md +0 -0
  154. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue875_original.md +0 -0
  155. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue875_plan.md +0 -0
  156. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue875_status.md +0 -0
  157. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue876_original.md +0 -0
  158. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue876_plan.md +0 -0
  159. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue876_status.md +0 -0
  160. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue878_original.md +0 -0
  161. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue878_plan.md +0 -0
  162. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue878_status.md +0 -0
  163. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue885_original.md +0 -0
  164. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue885_status.md +0 -0
  165. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue891_original.md +0 -0
  166. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue891_plan.md +0 -0
  167. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue891_status.md +0 -0
  168. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue892_original.md +0 -0
  169. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue892_status.md +0 -0
  170. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue912_original.md +0 -0
  171. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue912_plan.md +0 -0
  172. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue912_status.md +0 -0
  173. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue916_original.md +0 -0
  174. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue916_status.md +0 -0
  175. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue939_original.md +0 -0
  176. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue939_plan.md +0 -0
  177. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue939_status.md +0 -0
  178. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue940_original.md +0 -0
  179. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue940_plan.md +0 -0
  180. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue940_status.md +0 -0
  181. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue947_original.md +0 -0
  182. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue947_plan.md +0 -0
  183. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue947_status.md +0 -0
  184. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue950_original.md +0 -0
  185. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue950_plan.md +0 -0
  186. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue950_status.md +0 -0
  187. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue952_original.md +0 -0
  188. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue952_plan.md +0 -0
  189. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue952_status.md +0 -0
  190. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue961_original.md +0 -0
  191. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue961_plan.md +0 -0
  192. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue961_status.md +0 -0
  193. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue962_original.md +0 -0
  194. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue962_plan.md +0 -0
  195. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue962_status.md +0 -0
  196. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue963_original.md +0 -0
  197. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue963_plan.md +0 -0
  198. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue963_status.md +0 -0
  199. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue967_original.md +0 -0
  200. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue967_plan.md +0 -0
  201. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue967_status.md +0 -0
  202. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue971_original.md +0 -0
  203. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue971_plan.md +0 -0
  204. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/03-solved-issues/issue971_status.md +0 -0
  205. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/.gitkeep +0 -0
  206. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/atomic-file-writes.md +0 -0
  207. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/batch-load-orchestrator.md +0 -0
  208. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/bdf-export.md +0 -0
  209. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/build-and-versioning.md +0 -0
  210. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cellpy-v2-architecture.excalidraw +0 -0
  211. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cellpy-v2-branching.md +0 -0
  212. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cellpy-v2-epic.md +0 -0
  213. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cellpy-workspace-repos.md +0 -0
  214. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cellpycell-di-restructuring.md +0 -0
  215. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/ci-tiers.md +0 -0
  216. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cli-api-echo-binder.md +0 -0
  217. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/cli-light-startup.md +0 -0
  218. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/docs-on-master.md +0 -0
  219. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/essential-tests.md +0 -0
  220. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/filters-and-plot-filtering.md +0 -0
  221. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/harmonized-raw-default.md +0 -0
  222. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/marimo-docs.md +0 -0
  223. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/otherpath-upath.md +0 -0
  224. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-backends.md +0 -0
  225. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-batch-summary.md +0 -0
  226. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-collected.md +0 -0
  227. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-cycle-legend.md +0 -0
  228. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-prepare.md +0 -0
  229. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/plotting-registry.md +0 -0
  230. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/release-procedure.md +0 -0
  231. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/test-registry.md +0 -0
  232. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/testing-and-coverage.md +0 -0
  233. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/this-project.md +0 -0
  234. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/04-designs-and-guides/v2-cellpycore-pin-gate.md +0 -0
  235. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/05-epics/.gitkeep +0 -0
  236. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/05-epics/epic567_plan.md +0 -0
  237. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/05-epics/epic896_plan.md +0 -0
  238. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.issueflows/config.toml +0 -0
  239. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/.readthedocs.yaml +0 -0
  240. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/AGENTS.md +0 -0
  241. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/AUTHORS.md +0 -0
  242. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/CODE_OF_CONDUCT.md +0 -0
  243. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/CONTRIBUTING.md +0 -0
  244. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/DEPRECATIONS.md +0 -0
  245. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/HISTORY.md +0 -0
  246. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/LICENSE.md +0 -0
  247. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/README.md +0 -0
  248. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_cellpy_data_structure.md +0 -0
  249. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_cellpy_folder_structure.md +0 -0
  250. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_cellpy_packaging_pypi.md +0 -0
  251. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_cellpy_setup.md +0 -0
  252. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_conda_package.md +0 -0
  253. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_docs.md +0 -0
  254. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_loaders_and_instruments.md +0 -0
  255. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/dev_various.md +0 -0
  256. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_developers_guide/index.md +0 -0
  257. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/01_getting_started_tutorial.md +0 -0
  258. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/02_read_cell_data.md +0 -0
  259. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/03_more_about_get.md +0 -0
  260. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/04_other_interactions.md +0 -0
  261. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/05_configuring.md +0 -0
  262. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/06_pandas.md +0 -0
  263. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/07_data_mining.md +0 -0
  264. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basic_interactions/08_the_cellpy_cmd.md +0 -0
  265. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/basics.md +0 -0
  266. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/examples.md +0 -0
  267. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/index.md +0 -0
  268. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/01_arbin.md +0 -0
  269. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/02_maccor.md +0 -0
  270. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/03_PEC.md +0 -0
  271. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/04_Neware.md +0 -0
  272. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/05_biologics.md +0 -0
  273. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders/06_custom.md +0 -0
  274. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/loaders.md +0 -0
  275. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_001.png +0 -0
  276. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/images/templates_jupyterlab_002.png +0 -0
  277. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/tutorial_get_cap.ipynb +0 -0
  278. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/tutorial_simple_plot.ipynb +0 -0
  279. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/tutorial_templates.ipynb +0 -0
  280. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks/tutorial_xxx-checkpoint.ipynb +0 -0
  281. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/notebooks.md +0 -0
  282. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/tips_and_tricks.md +0 -0
  283. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/batch.md +0 -0
  284. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/collectors.md +0 -0
  285. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/custom_file_loaders.md +0 -0
  286. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/easyplot.md +0 -0
  287. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig1.png +0 -0
  288. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/figures/tutorials_utils_plotting_fig2.png +0 -0
  289. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/ica.md +0 -0
  290. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/plotting.md +0 -0
  291. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/templates.md +0 -0
  292. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils/tut_ocv_rlx.md +0 -0
  293. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_examples_and_tutorials/utils.md +0 -0
  294. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_main_description/formats.md +0 -0
  295. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_main_description/index.md +0 -0
  296. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_main_description/installation.md +0 -0
  297. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/_main_description/usage.md +0 -0
  298. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/_old_docs/index.md +0 -0
  299. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/README.md +0 -0
  300. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/__init__.py +0 -0
  301. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/baselines/v1x_ubuntu_py313.json +0 -0
  302. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/check_baseline.py +0 -0
  303. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/conftest.py +0 -0
  304. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/paths.py +0 -0
  305. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/benchmarks/test_performance.py +0 -0
  306. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/__init__.py +0 -0
  307. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/_deprecation.py +0 -0
  308. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/_version.py +0 -0
  309. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/__init__.py +0 -0
  310. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/_dbengine.py +0 -0
  311. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/aggregate.py +0 -0
  312. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/db.py +0 -0
  313. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/facade.py +0 -0
  314. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/journal.py +0 -0
  315. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/layout.py +0 -0
  316. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/outputs.py +0 -0
  317. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/policy.py +0 -0
  318. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/progress.py +0 -0
  319. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/qc.py +0 -0
  320. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/result.py +0 -0
  321. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/runner.py +0 -0
  322. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/batch/store.py +0 -0
  323. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/cli_ui.py +0 -0
  324. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/__init__.py +0 -0
  325. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/_summary_ops.py +0 -0
  326. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/cells.py +0 -0
  327. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/collection.py +0 -0
  328. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/collector.py +0 -0
  329. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/curves.py +0 -0
  330. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/dva.py +0 -0
  331. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/ica.py +0 -0
  332. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/options.py +0 -0
  333. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/collect/summary.py +0 -0
  334. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/__init__.py +0 -0
  335. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/credentials.py +0 -0
  336. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/legacy.py +0 -0
  337. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/loader.py +0 -0
  338. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/migrate.py +0 -0
  339. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/models.py +0 -0
  340. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/reference.py +0 -0
  341. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/session.py +0 -0
  342. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/sources.py +0 -0
  343. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/config/types.py +0 -0
  344. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/exceptions.py +0 -0
  345. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/exporters/__init__.py +0 -0
  346. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/exporters/bdf.py +0 -0
  347. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/exporters/tabular.py +0 -0
  348. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/filters/__init__.py +0 -0
  349. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/filters/cycles.py +0 -0
  350. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/filters/summary.py +0 -0
  351. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/ica.py +0 -0
  352. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/internals/__init__.py +0 -0
  353. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/internals/connections.py +0 -0
  354. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/internals/otherpath.py +0 -0
  355. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/internals/progress.py +0 -0
  356. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/__init__.py +0 -0
  357. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/__init__.py +0 -0
  358. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/_alias_module.py +0 -0
  359. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/_importing.py +0 -0
  360. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/_module.py +0 -0
  361. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/_syncronized.py +0 -0
  362. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/_version.py +0 -0
  363. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/apipkg/py.typed +0 -0
  364. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/LICENSE +0 -0
  365. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/__init__.py +0 -0
  366. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/btsda.py +0 -0
  367. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/cli.py +0 -0
  368. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/dicts.py +0 -0
  369. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/formats.py +0 -0
  370. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/main.py +0 -0
  371. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/nda.py +0 -0
  372. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/ndax.py +0 -0
  373. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/utils.py +0 -0
  374. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/libs/local_fastnda/version.py +0 -0
  375. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/log.py +0 -0
  376. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/logging.json +0 -0
  377. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/.cellpy_prms_default.conf +0 -0
  378. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/__init__.py +0 -0
  379. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/cell_schema.py +0 -0
  380. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/internal_settings.py +0 -0
  381. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/legacy/__init__.py +0 -0
  382. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/legacy/update_headers.py +0 -0
  383. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/prmreader.py +0 -0
  384. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/parameters/prms.py +0 -0
  385. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/__init__.py +0 -0
  386. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/backends/__init__.py +0 -0
  387. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/backends/base.py +0 -0
  388. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/backends/mpl.py +0 -0
  389. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/backends/plotly.py +0 -0
  390. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/batch_summary.py +0 -0
  391. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/collected.py +0 -0
  392. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/context.py +0 -0
  393. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/cycle_legend.py +0 -0
  394. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/figures.py +0 -0
  395. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/headers.py +0 -0
  396. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/labels.py +0 -0
  397. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/__init__.py +0 -0
  398. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/curves.py +0 -0
  399. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/ica.py +0 -0
  400. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/raw.py +0 -0
  401. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/steps.py +0 -0
  402. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/prepare/summary.py +0 -0
  403. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/registry.py +0 -0
  404. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/spec.py +0 -0
  405. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/plotting/theme.py +0 -0
  406. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/__init__.py +0 -0
  407. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/capacity_curves.py +0 -0
  408. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/__init__.py +0 -0
  409. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/atomic.py +0 -0
  410. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/dtype.py +0 -0
  411. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/fids.py +0 -0
  412. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/format.py +0 -0
  413. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/keys.py +0 -0
  414. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/legacy_read.py +0 -0
  415. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/meta.py +0 -0
  416. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/meta_archive.py +0 -0
  417. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/read.py +0 -0
  418. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/selectors.py +0 -0
  419. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/translate.py +0 -0
  420. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/v9.py +0 -0
  421. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellpy_file/write.py +0 -0
  422. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/cellreader.py +0 -0
  423. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/data_structures.py +0 -0
  424. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/dbreader.py +0 -0
  425. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/do.py +0 -0
  426. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/filefinder.py +0 -0
  427. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/SQL Table IDs.txt +0 -0
  428. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/__init__.py +0 -0
  429. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/_aux_map.py +0 -0
  430. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_res.py +0 -0
  431. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql.py +0 -0
  432. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql_7.py +0 -0
  433. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql_config.py +0 -0
  434. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql_csv.py +0 -0
  435. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql_h5.py +0 -0
  436. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/arbin_sql_xlsx.py +0 -0
  437. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/base.py +0 -0
  438. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/batmo_bdf.py +0 -0
  439. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/biologics_mpr.py +0 -0
  440. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/config_declarations.py +0 -0
  441. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/__init__.py +0 -0
  442. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/batmo_bdf_bdf.py +0 -0
  443. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/maccor_txt_one.py +0 -0
  444. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/maccor_txt_three.py +0 -0
  445. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/maccor_txt_two.py +0 -0
  446. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/maccor_txt_zero.py +0 -0
  447. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/neware_txt_one.py +0 -0
  448. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/neware_txt_two.py +0 -0
  449. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/configurations/neware_txt_zero.py +0 -0
  450. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/contract.py +0 -0
  451. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/custom.py +0 -0
  452. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/declarations.py +0 -0
  453. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/ext_nda_reader.py +0 -0
  454. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/harmonize.py +0 -0
  455. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/hooks.py +0 -0
  456. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/loader_specific_modules/__init__.py +0 -0
  457. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/loader_specific_modules/biologic_file_format.py +0 -0
  458. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/local_instrument.py +0 -0
  459. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/maccor_txt.py +0 -0
  460. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/maccor_txt_native.py +0 -0
  461. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/neware_nda.py +0 -0
  462. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/neware_txt.py +0 -0
  463. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/neware_xlsx.py +0 -0
  464. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/pec_csv.py +0 -0
  465. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/processors/__init__.py +0 -0
  466. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/processors/post_processors.py +0 -0
  467. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/processors/pre_processors.py +0 -0
  468. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/registry.py +0 -0
  469. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/instruments/testing.py +0 -0
  470. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/journal_layer.py +0 -0
  471. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/json_dbreader.py +0 -0
  472. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/merger.py +0 -0
  473. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/meta_resolver.py +0 -0
  474. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/native_core.py +0 -0
  475. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/provenance.py +0 -0
  476. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/slicing.py +0 -0
  477. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/sql_dbreader.py +0 -0
  478. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/readers/test_meta.py +0 -0
  479. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/units.py +0 -0
  480. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/__init__.py +0 -0
  481. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/batch.py +0 -0
  482. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/collectors.py +0 -0
  483. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/diagnostics.py +0 -0
  484. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/example_data.py +0 -0
  485. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/helpers.py +0 -0
  486. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/ica.py +0 -0
  487. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/live.py +0 -0
  488. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/ocv_rlx.py +0 -0
  489. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/plotutils.py +0 -0
  490. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/processor.py +0 -0
  491. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/cellpy/utils/template_registry.py +0 -0
  492. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/backfill_notebook_plotly_pngs.py +0 -0
  493. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/conda-recipes/README.md +0 -0
  494. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/conda-recipes/cellpy/meta.yaml +0 -0
  495. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/conda-recipes/cellpycore/meta.yaml +0 -0
  496. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/make_bad_fixtures.py +0 -0
  497. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/plot_preview_common.py +0 -0
  498. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/preview_curve_plots.py +0 -0
  499. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/preview_ica_plots.py +0 -0
  500. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/preview_plots.py +0 -0
  501. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/preview_summary_plots.py +0 -0
  502. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/regenerate_goldens.py +0 -0
  503. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/render_example_notebooks.py +0 -0
  504. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/snapshot_cli_surface.py +0 -0
  505. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/snapshot_figure_specs.py +0 -0
  506. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/.gitignore +0 -0
  507. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/NOTES.md +0 -0
  508. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/README.md +0 -0
  509. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/_common.py +0 -0
  510. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/summarize_importtime.py +0 -0
  511. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_arbin_h5.py +0 -0
  512. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_cellpy_io.py +0 -0
  513. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_executors.py +0 -0
  514. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_filefinder.py +0 -0
  515. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_imports.py +0 -0
  516. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_one_cell.py +0 -0
  517. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/dev/speed-test-01/time_otherpath.py +0 -0
  518. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/docker/Dockerfile.build-test +0 -0
  519. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/docker/sftp-test/README.md +0 -0
  520. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/docker/sftp-test/compose.yml +0 -0
  521. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/docker/sftp-test/data/hello.txt +0 -0
  522. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/docker/sftp-test/data/nested/sample.txt +0 -0
  523. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/environment.yml +0 -0
  524. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/environment_dev.yml +0 -0
  525. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/github_actions_environment.yml +0 -0
  526. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/noxfile.py +0 -0
  527. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/.github/workflows/draft-pdf.yml +0 -0
  528. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/.gitignore +0 -0
  529. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/Figures/Cellpy-Utils.jpg +0 -0
  530. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/Figures/CellpyCell.jpg +0 -0
  531. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/Figures/CellpyData.jpg +0 -0
  532. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/paper.bib +0 -0
  533. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/paper/paper.md +0 -0
  534. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/pyproject.toml +0 -0
  535. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/scripts/build_test.sh +0 -0
  536. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/scripts/dev_sync.sh +0 -0
  537. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/uv.lock +0 -0
  538. {cellpy-2.1.3.post2 → cellpy-2.1.3.post3}/zensical.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: cellpy
3
- Version: 2.1.3.post2
3
+ Version: 2.1.3.post3
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
@@ -18,6 +18,7 @@ cli = typer.Typer(
18
18
  )
19
19
 
20
20
  setup_app = typer.Typer()
21
+ mcp_app = typer.Typer()
21
22
 
22
23
 
23
24
  @cli.callback()
@@ -643,8 +644,72 @@ def serve(
643
644
  )
644
645
 
645
646
 
646
- # `setup` is the only group; the rest register themselves with @cli.command().
647
+ # ----------------------- mcp ----------------------------------------
648
+ #
649
+ # Spelled `cellpy mcp`, not `cellpy server mcp`: `cellpy serve` already starts
650
+ # Jupyter, and for an audience defined by not being comfortable in a terminal,
651
+ # one letter between two unrelated commands is a trap. The server itself lives
652
+ # in the separate `cellpy-mcp` distribution — see `cli_api` for why, and for
653
+ # the contract these three wrap.
654
+
655
+
656
+ @mcp_app.command("serve")
657
+ def mcp_serve(
658
+ root: Annotated[
659
+ Optional[str],
660
+ typer.Option(
661
+ "--root",
662
+ "-r",
663
+ help="The only directory the server may read or write.",
664
+ ),
665
+ ] = None,
666
+ ):
667
+ """Run the MCP server over stdio (a client normally spawns this)."""
668
+ if cli_api.mcp_serve(root=root, echo=_echo()):
669
+ raise typer.Exit(code=1)
670
+
671
+
672
+ @mcp_app.command("install")
673
+ def mcp_install(
674
+ root: Annotated[
675
+ Optional[str],
676
+ typer.Option(
677
+ "--root",
678
+ "-r",
679
+ help="The only directory the server may read or write.",
680
+ ),
681
+ ] = None,
682
+ client: Annotated[
683
+ Optional[str],
684
+ typer.Option("--client", "-c", help="Which chat client to register with."),
685
+ ] = None,
686
+ dry_run: Annotated[
687
+ bool,
688
+ typer.Option(
689
+ "--dry-run",
690
+ "-dr",
691
+ help="Print the configuration instead of writing it.",
692
+ ),
693
+ ] = False,
694
+ ):
695
+ """Register the MCP server with a chat client."""
696
+ if cli_api.mcp_install(root=root, client=client, dry_run=dry_run, echo=_echo()):
697
+ raise typer.Exit(code=1)
698
+
699
+
700
+ @mcp_app.command("status")
701
+ def mcp_status():
702
+ """Report whether the MCP server is installed, and what it would serve."""
703
+ # Deliberately never exits non-zero: "not installed" is a true answer, and
704
+ # this is the command you script to find that out.
705
+ cli_api.mcp_status(echo=_echo(payload=True))
706
+
707
+
708
+ # ----------------------- groups --------------------------------------
709
+
710
+ # `setup` and `mcp` are the groups; the rest register with @cli.command().
647
711
  cli.add_typer(setup_app, name="setup")
712
+ cli.add_typer(mcp_app, name="mcp", help="Run cellpy as an MCP server.")
648
713
 
649
714
 
650
715
  @cli.command()
@@ -2032,3 +2032,130 @@ def create_project(
2032
2032
  list_=list_,
2033
2033
  **kwargs,
2034
2034
  )
2035
+
2036
+
2037
+ # ----------------------- mcp ----------------------------------------
2038
+ #
2039
+ # `cellpy mcp` is a *shim*. The MCP server lives in a separate distribution,
2040
+ # `cellpy-mcp`, and cellpy deliberately does not depend on it: the MCP Python
2041
+ # SDK is young and moving (2.0 renamed `FastMCP` to `MCPServer` and ships two
2042
+ # `Context` classes with different attributes), and a long-lived network-facing
2043
+ # process is a security surface a data library should not carry. Keeping the
2044
+ # server out means it can move at the SDK's pace instead of cellpy's release
2045
+ # cadence — while the entry point still lives where people look for it.
2046
+ #
2047
+ # So cellpy gains a command, not a dependency. What that costs is a contract:
2048
+ #
2049
+ # cellpy_mcp.__version__
2050
+ # cellpy_mcp.serve(root=None) -> None (blocks on stdio)
2051
+ # cellpy_mcp.install(root=None, client=None, dry_run=False) -> str
2052
+ #
2053
+ # `status` is the exception and is implemented here, because its whole job is
2054
+ # to answer "is it installed?" — a question that cannot be delegated to the
2055
+ # thing whose absence is the answer.
2056
+
2057
+ #: The distribution to install, and the module it provides. Different strings
2058
+ #: on purpose: `pip install cellpy-mcp` gives you `import cellpy_mcp`, and a
2059
+ #: hint that prints the wrong one sends people to a 404.
2060
+ MCP_DISTRIBUTION = "cellpy-mcp"
2061
+ MCP_MODULE = "cellpy_mcp"
2062
+
2063
+
2064
+ def _import_mcp():
2065
+ """The server package, or ``None`` after reporting how to install it."""
2066
+ import importlib
2067
+
2068
+ try:
2069
+ return importlib.import_module(MCP_MODULE)
2070
+ except ImportError:
2071
+ _ui().fail(
2072
+ "mcp",
2073
+ f"{MCP_DISTRIBUTION} is not installed.",
2074
+ hint=f"python -m pip install {MCP_DISTRIBUTION}",
2075
+ )
2076
+ return None
2077
+
2078
+
2079
+ def mcp_serve(root=None, echo: Optional[Echo] = None):
2080
+ """Run the MCP server over stdio. Returns true when it could not start.
2081
+
2082
+ This blocks: an MCP client spawns it as a subprocess and talks to it over
2083
+ stdin/stdout, so there is nothing to background and nothing to connect to.
2084
+ Running it by hand is mostly useful for seeing that it starts.
2085
+ """
2086
+ with _using_echo(echo):
2087
+ module = _import_mcp()
2088
+ if module is None:
2089
+ return True
2090
+ # Nothing is printed on the way up: stdout *is* the protocol channel,
2091
+ # and a friendly banner on it is a parse error at the other end.
2092
+ module.serve(root=root)
2093
+ return False
2094
+
2095
+
2096
+ def mcp_install(
2097
+ root=None,
2098
+ client: Optional[str] = None,
2099
+ dry_run: bool = False,
2100
+ echo: Optional[Echo] = None,
2101
+ ):
2102
+ """Register the server with a chat client. Returns true on failure."""
2103
+ with _using_echo(echo):
2104
+ module = _import_mcp()
2105
+ if module is None:
2106
+ return True
2107
+
2108
+ ui = _ui()
2109
+ try:
2110
+ where = module.install(root=root, client=client, dry_run=dry_run)
2111
+ except Exception as exc: # noqa: BLE001 - the reason belongs on screen
2112
+ ui.fail("mcp install", str(exc))
2113
+ return True
2114
+
2115
+ ui.ok("registered" if not dry_run else "would register", str(where))
2116
+ if not dry_run:
2117
+ ui.hint("restart the client to pick it up")
2118
+ return False
2119
+
2120
+
2121
+ def mcp_status(echo: Optional[Echo] = None):
2122
+ """Report whether the server is installed, and what it would serve.
2123
+
2124
+ Answers the three questions someone actually has when a chat client says
2125
+ it cannot see cellpy: is the package there, which cellpy would it use, and
2126
+ which directory would it be allowed to read.
2127
+ """
2128
+ import importlib
2129
+ import importlib.metadata
2130
+
2131
+ with _using_echo(echo):
2132
+ from cellpy import __version__ as cellpy_version
2133
+
2134
+ ui = _ui()
2135
+ ui.title("cellpy mcp")
2136
+
2137
+ try:
2138
+ module = importlib.import_module(MCP_MODULE)
2139
+ except ImportError:
2140
+ ui.detail("server", "not installed")
2141
+ ui.detail("cellpy", cellpy_version)
2142
+ ui.hint(f"python -m pip install {MCP_DISTRIBUTION}")
2143
+ # Not an error: "not installed" is a true and useful answer, and a
2144
+ # non-zero exit would make `cellpy mcp status` unscriptable as the
2145
+ # check it exists to be.
2146
+ return False
2147
+
2148
+ try:
2149
+ version = importlib.metadata.version(MCP_DISTRIBUTION)
2150
+ except importlib.metadata.PackageNotFoundError:
2151
+ # Importable but not installed as a distribution — an editable
2152
+ # checkout on the path. Worth saying rather than guessing.
2153
+ version = getattr(module, "__version__", "unknown (not installed)")
2154
+
2155
+ ui.detail("server", version)
2156
+ ui.detail("cellpy", cellpy_version)
2157
+ describe = getattr(module, "describe", None)
2158
+ if callable(describe):
2159
+ for key, value in describe().items():
2160
+ ui.detail(key, str(value))
2161
+ return False
File without changes
File without changes
File without changes
File without changes
File without changes