PyDPEET 0.2.0__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 (131) hide show
  1. pydpeet-0.2.0/AUTHORS.md +0 -0
  2. pydpeet-0.2.0/LICENCE.md +27 -0
  3. pydpeet-0.2.0/PKG-INFO +85 -0
  4. pydpeet-0.2.0/README.md +57 -0
  5. pydpeet-0.2.0/pyproject.toml +65 -0
  6. pydpeet-0.2.0/setup.cfg +4 -0
  7. pydpeet-0.2.0/src/PyDPEET.egg-info/PKG-INFO +85 -0
  8. pydpeet-0.2.0/src/PyDPEET.egg-info/SOURCES.txt +129 -0
  9. pydpeet-0.2.0/src/PyDPEET.egg-info/dependency_links.txt +1 -0
  10. pydpeet-0.2.0/src/PyDPEET.egg-info/requires.txt +17 -0
  11. pydpeet-0.2.0/src/PyDPEET.egg-info/top_level.txt +1 -0
  12. pydpeet-0.2.0/src/pydpeet/__init__.py +56 -0
  13. pydpeet-0.2.0/src/pydpeet/citations/__init__.py +7 -0
  14. pydpeet-0.2.0/src/pydpeet/citations/citeme.py +397 -0
  15. pydpeet-0.2.0/src/pydpeet/citations/html_writer.py +137 -0
  16. pydpeet-0.2.0/src/pydpeet/dev_utils/__init__.py +7 -0
  17. pydpeet-0.2.0/src/pydpeet/dev_utils/generate_inits/__init__.py +7 -0
  18. pydpeet-0.2.0/src/pydpeet/dev_utils/generate_inits/generate_inits.py +327 -0
  19. pydpeet-0.2.0/src/pydpeet/io/__init__.py +7 -0
  20. pydpeet-0.2.0/src/pydpeet/io/configs/__init__.py +7 -0
  21. pydpeet-0.2.0/src/pydpeet/io/configs/config.py +227 -0
  22. pydpeet-0.2.0/src/pydpeet/io/configs/const.py +1 -0
  23. pydpeet-0.2.0/src/pydpeet/io/convert.py +594 -0
  24. pydpeet-0.2.0/src/pydpeet/io/device/__init__.py +7 -0
  25. pydpeet-0.2.0/src/pydpeet/io/device/arbin_4_23_PV090331/__init__.py +7 -0
  26. pydpeet-0.2.0/src/pydpeet/io/device/arbin_4_23_PV090331/formatter.py +22 -0
  27. pydpeet-0.2.0/src/pydpeet/io/device/arbin_4_23_PV090331/mapper.py +18 -0
  28. pydpeet-0.2.0/src/pydpeet/io/device/arbin_4_23_PV090331/reader.py +68 -0
  29. pydpeet-0.2.0/src/pydpeet/io/device/arbin_8_00_PV221201/__init__.py +7 -0
  30. pydpeet-0.2.0/src/pydpeet/io/device/arbin_8_00_PV221201/formatter.py +26 -0
  31. pydpeet-0.2.0/src/pydpeet/io/device/arbin_8_00_PV221201/mapper.py +18 -0
  32. pydpeet-0.2.0/src/pydpeet/io/device/arbin_8_00_PV221201/reader.py +66 -0
  33. pydpeet-0.2.0/src/pydpeet/io/device/basytec_6_3_1_0/__init__.py +7 -0
  34. pydpeet-0.2.0/src/pydpeet/io/device/basytec_6_3_1_0/formatter.py +18 -0
  35. pydpeet-0.2.0/src/pydpeet/io/device/basytec_6_3_1_0/mapper.py +18 -0
  36. pydpeet-0.2.0/src/pydpeet/io/device/basytec_6_3_1_0/reader.py +54 -0
  37. pydpeet-0.2.0/src/pydpeet/io/device/digatron_4_20_6_236/__init__.py +7 -0
  38. pydpeet-0.2.0/src/pydpeet/io/device/digatron_4_20_6_236/formatter.py +27 -0
  39. pydpeet-0.2.0/src/pydpeet/io/device/digatron_4_20_6_236/mapper.py +18 -0
  40. pydpeet-0.2.0/src/pydpeet/io/device/digatron_4_20_6_236/reader.py +45 -0
  41. pydpeet-0.2.0/src/pydpeet/io/device/digatron_eis_4_20_6_236/__init__.py +7 -0
  42. pydpeet-0.2.0/src/pydpeet/io/device/digatron_eis_4_20_6_236/formatter.py +39 -0
  43. pydpeet-0.2.0/src/pydpeet/io/device/digatron_eis_4_20_6_236/mapper.py +18 -0
  44. pydpeet-0.2.0/src/pydpeet/io/device/digatron_eis_4_20_6_236/reader.py +42 -0
  45. pydpeet-0.2.0/src/pydpeet/io/device/neware_8_0_0_516/__init__.py +7 -0
  46. pydpeet-0.2.0/src/pydpeet/io/device/neware_8_0_0_516/formatter.py +31 -0
  47. pydpeet-0.2.0/src/pydpeet/io/device/neware_8_0_0_516/mapper.py +18 -0
  48. pydpeet-0.2.0/src/pydpeet/io/device/neware_8_0_0_516/reader.py +397 -0
  49. pydpeet-0.2.0/src/pydpeet/io/device/parstat_2_63_3/__init__.py +7 -0
  50. pydpeet-0.2.0/src/pydpeet/io/device/parstat_2_63_3/formatter.py +34 -0
  51. pydpeet-0.2.0/src/pydpeet/io/device/parstat_2_63_3/mapper.py +18 -0
  52. pydpeet-0.2.0/src/pydpeet/io/device/parstat_2_63_3/reader.py +34 -0
  53. pydpeet-0.2.0/src/pydpeet/io/device/safion_1_9/__init__.py +7 -0
  54. pydpeet-0.2.0/src/pydpeet/io/device/safion_1_9/formatter.py +25 -0
  55. pydpeet-0.2.0/src/pydpeet/io/device/safion_1_9/mapper.py +18 -0
  56. pydpeet-0.2.0/src/pydpeet/io/device/safion_1_9/reader.py +89 -0
  57. pydpeet-0.2.0/src/pydpeet/io/device/zahner/__init__.py +7 -0
  58. pydpeet-0.2.0/src/pydpeet/io/device/zahner/formatter.py +73 -0
  59. pydpeet-0.2.0/src/pydpeet/io/device/zahner/mapper.py +34 -0
  60. pydpeet-0.2.0/src/pydpeet/io/device/zahner/reader.py +46 -0
  61. pydpeet-0.2.0/src/pydpeet/io/device/zahner_new/__init__.py +7 -0
  62. pydpeet-0.2.0/src/pydpeet/io/device/zahner_new/formatter.py +72 -0
  63. pydpeet-0.2.0/src/pydpeet/io/device/zahner_new/mapper.py +50 -0
  64. pydpeet-0.2.0/src/pydpeet/io/device/zahner_new/reader.py +46 -0
  65. pydpeet-0.2.0/src/pydpeet/io/map.py +69 -0
  66. pydpeet-0.2.0/src/pydpeet/io/read.py +50 -0
  67. pydpeet-0.2.0/src/pydpeet/io/utils/__init__.py +7 -0
  68. pydpeet-0.2.0/src/pydpeet/io/utils/ext_path.py +34 -0
  69. pydpeet-0.2.0/src/pydpeet/io/utils/formatter_utils.py +429 -0
  70. pydpeet-0.2.0/src/pydpeet/io/utils/load_custom_module.py +33 -0
  71. pydpeet-0.2.0/src/pydpeet/io/utils/timing.py +36 -0
  72. pydpeet-0.2.0/src/pydpeet/io/write.py +99 -0
  73. pydpeet-0.2.0/src/pydpeet/process/__init__.py +7 -0
  74. pydpeet-0.2.0/src/pydpeet/process/analyze/__init__.py +7 -0
  75. pydpeet-0.2.0/src/pydpeet/process/analyze/average.py +297 -0
  76. pydpeet-0.2.0/src/pydpeet/process/analyze/capacity.py +208 -0
  77. pydpeet-0.2.0/src/pydpeet/process/analyze/configs/__init__.py +7 -0
  78. pydpeet-0.2.0/src/pydpeet/process/analyze/configs/battery_config.py +38 -0
  79. pydpeet-0.2.0/src/pydpeet/process/analyze/configs/ocv_config.py +177 -0
  80. pydpeet-0.2.0/src/pydpeet/process/analyze/configs/step_analyzer_config.py +178 -0
  81. pydpeet-0.2.0/src/pydpeet/process/analyze/cycle.py +63 -0
  82. pydpeet-0.2.0/src/pydpeet/process/analyze/efficiency.py +182 -0
  83. pydpeet-0.2.0/src/pydpeet/process/analyze/energy.py +51 -0
  84. pydpeet-0.2.0/src/pydpeet/process/analyze/extract/__init__.py +7 -0
  85. pydpeet-0.2.0/src/pydpeet/process/analyze/extract/dva_ica.py +224 -0
  86. pydpeet-0.2.0/src/pydpeet/process/analyze/extract/ocv.py +196 -0
  87. pydpeet-0.2.0/src/pydpeet/process/analyze/power.py +32 -0
  88. pydpeet-0.2.0/src/pydpeet/process/analyze/resistance.py +87 -0
  89. pydpeet-0.2.0/src/pydpeet/process/analyze/soc.py +418 -0
  90. pydpeet-0.2.0/src/pydpeet/process/analyze/soh.py +72 -0
  91. pydpeet-0.2.0/src/pydpeet/process/analyze/utils.py +122 -0
  92. pydpeet-0.2.0/src/pydpeet/process/merge/__init__.py +7 -0
  93. pydpeet-0.2.0/src/pydpeet/process/merge/series.py +274 -0
  94. pydpeet-0.2.0/src/pydpeet/process/sequence/__init__.py +7 -0
  95. pydpeet-0.2.0/src/pydpeet/process/sequence/configs/__init__.py +7 -0
  96. pydpeet-0.2.0/src/pydpeet/process/sequence/configs/config.py +17 -0
  97. pydpeet-0.2.0/src/pydpeet/process/sequence/step_analyzer.py +440 -0
  98. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/__init__.py +7 -0
  99. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/annotate/__init__.py +7 -0
  100. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/annotate/annotate_primitives.py +419 -0
  101. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/configs/CONFIG_Fallback.py +231 -0
  102. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/configs/CONFIG_preprocessing.py +243 -0
  103. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/configs/__init__.py +7 -0
  104. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/console_prints/__init__.py +7 -0
  105. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/console_prints/log_time.py +30 -0
  106. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/postprocessing/__init__.py +7 -0
  107. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/postprocessing/df_primitives_correction.py +166 -0
  108. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/postprocessing/filter_df.py +168 -0
  109. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/postprocessing/generate_instructions.py +297 -0
  110. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/preprocessing/__init__.py +7 -0
  111. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/preprocessing/calculate_thresholds.py +27 -0
  112. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/__init__.py +7 -0
  113. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/analyze_segments.py +368 -0
  114. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/attempt_to_merge_neighboring_segments.py +122 -0
  115. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/check_CV_results.py +226 -0
  116. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/check_power_zero_watt_segments.py +85 -0
  117. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/check_zero_length.py +117 -0
  118. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/split_in_segments.py +97 -0
  119. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/supress_smaller_segments.py +99 -0
  120. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/processing/widen_constant_segments.py +185 -0
  121. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/visualize/__init__.py +7 -0
  122. pydpeet-0.2.0/src/pydpeet/process/sequence/utils/visualize/visualize_data.py +288 -0
  123. pydpeet-0.2.0/src/pydpeet/res/__init__.py +7 -0
  124. pydpeet-0.2.0/src/pydpeet/settings.py +0 -0
  125. pydpeet-0.2.0/src/pydpeet/utils/__init__.py +7 -0
  126. pydpeet-0.2.0/src/pydpeet/utils/logging_style.py +28 -0
  127. pydpeet-0.2.0/src/pydpeet/version.py +0 -0
  128. pydpeet-0.2.0/test/test_datatypes.py +85 -0
  129. pydpeet-0.2.0/test/test_directory_standardization.py +1 -0
  130. pydpeet-0.2.0/test/test_export.py +74 -0
  131. pydpeet-0.2.0/test/test_map.py +205 -0
File without changes
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2025, the PyDPEET team.
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ * Neither the name of the copyright holder nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
pydpeet-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,85 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyDPEET
3
+ Version: 0.2.0
4
+ Summary: Python package to read, unify, and convert battery measurement data from arbitrary battery cyclers to Parquet files. This package also provides functions to process, evaluate, and visualise the standardised data.
5
+ Author: Alexander Günter Hinrichsen, Jan Kalisch, Daniel Schröder, Cataldo De Simone
6
+ Author-email: Anton Schlösser <a.schloesser@tu-berlin.de>, Martin Otto <m.otto.1@tu-berlin.de>
7
+ Requires-Python: >=3.12
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENCE.md
10
+ License-File: AUTHORS.md
11
+ Requires-Dist: pandas
12
+ Requires-Dist: numpy
13
+ Requires-Dist: pyarrow
14
+ Requires-Dist: python-calamine
15
+ Requires-Dist: numba
16
+ Requires-Dist: matplotlib
17
+ Requires-Dist: scipy
18
+ Requires-Dist: bibtexparser
19
+ Requires-Dist: scikit-learn
20
+ Provides-Extra: docs
21
+ Requires-Dist: sphinx; extra == "docs"
22
+ Requires-Dist: pydata-sphinx-theme; extra == "docs"
23
+ Requires-Dist: myst-parser; extra == "docs"
24
+ Requires-Dist: nbsphinx; extra == "docs"
25
+ Requires-Dist: sphinx-copybutton; extra == "docs"
26
+ Requires-Dist: bibtexparser; extra == "docs"
27
+ Dynamic: license-file
28
+
29
+ # PyDPEET - Fast and Easy Battery Data Unification, Processing, and Analysis
30
+
31
+ [[_TOC_]]
32
+
33
+ ## Disclaimer
34
+
35
+ This README is still under (re-)construction due to changes in the codebase.
36
+
37
+ ## Description
38
+
39
+ <!-- This project enables you to convert battery measurement data to a standardized format.
40
+
41
+ Cycler output their measurement data in different formats and different file types, like for example .csv and .xslx. Each has to be handled differently which makes it difficult to work with the data and that's the reason why we created a standardized format.
42
+ The standardized Data and Metadata can be used inside of the code and can be output as a .csv (Data), .xlsx (Data) or parquet(Data) to a output_path of your choosing.
43
+
44
+ Keeping additional data outside of our definition of the standardized columns and custom cycler handling is also possible. -->
45
+
46
+
47
+ ## Standardised Format
48
+
49
+ The standard columns are defined as follows:
50
+
51
+ ```python
52
+ STANDARD_COLUMNS = [
53
+ "Meta_Data",
54
+ "Step_Count",
55
+ "Voltage[V]",
56
+ "Current[A]",
57
+ "Temperature[°C]",
58
+ "Test_Time[s]",
59
+ "Date_Time",
60
+ "EIS_f[Hz]",
61
+ "EIS_Z_Real[Ohm]",
62
+ "EIS_Z_Imag[Ohm]",
63
+ "EIS_DC[A]"
64
+ ]
65
+ ```
66
+
67
+ ## Meta data
68
+
69
+ ## Supported Cyclers
70
+
71
+ ## Installation
72
+
73
+ ### For Developers
74
+
75
+ #### Rebuild package for "pip"
76
+
77
+ #### How to renew the documentation after implementing new functions
78
+
79
+ ### For Users
80
+
81
+ ## Usage
82
+
83
+ ## Custom Handling of Cycler
84
+
85
+ ## How to add a Custom Handling to the Project
@@ -0,0 +1,57 @@
1
+ # PyDPEET - Fast and Easy Battery Data Unification, Processing, and Analysis
2
+
3
+ [[_TOC_]]
4
+
5
+ ## Disclaimer
6
+
7
+ This README is still under (re-)construction due to changes in the codebase.
8
+
9
+ ## Description
10
+
11
+ <!-- This project enables you to convert battery measurement data to a standardized format.
12
+
13
+ Cycler output their measurement data in different formats and different file types, like for example .csv and .xslx. Each has to be handled differently which makes it difficult to work with the data and that's the reason why we created a standardized format.
14
+ The standardized Data and Metadata can be used inside of the code and can be output as a .csv (Data), .xlsx (Data) or parquet(Data) to a output_path of your choosing.
15
+
16
+ Keeping additional data outside of our definition of the standardized columns and custom cycler handling is also possible. -->
17
+
18
+
19
+ ## Standardised Format
20
+
21
+ The standard columns are defined as follows:
22
+
23
+ ```python
24
+ STANDARD_COLUMNS = [
25
+ "Meta_Data",
26
+ "Step_Count",
27
+ "Voltage[V]",
28
+ "Current[A]",
29
+ "Temperature[°C]",
30
+ "Test_Time[s]",
31
+ "Date_Time",
32
+ "EIS_f[Hz]",
33
+ "EIS_Z_Real[Ohm]",
34
+ "EIS_Z_Imag[Ohm]",
35
+ "EIS_DC[A]"
36
+ ]
37
+ ```
38
+
39
+ ## Meta data
40
+
41
+ ## Supported Cyclers
42
+
43
+ ## Installation
44
+
45
+ ### For Developers
46
+
47
+ #### Rebuild package for "pip"
48
+
49
+ #### How to renew the documentation after implementing new functions
50
+
51
+ ### For Users
52
+
53
+ ## Usage
54
+
55
+ ## Custom Handling of Cycler
56
+
57
+ ## How to add a Custom Handling to the Project
@@ -0,0 +1,65 @@
1
+ [build-system]
2
+ requires = ["setuptools", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "PyDPEET"
7
+ version = "0.2.0"
8
+ description = "Python package to read, unify, and convert battery measurement data from arbitrary battery cyclers to Parquet files. This package also provides functions to process, evaluate, and visualise the standardised data."
9
+ authors = [
10
+ { name = "Anton Schlösser", email = "a.schloesser@tu-berlin.de"},
11
+ { name = "Martin Otto", email = "m.otto.1@tu-berlin.de"},
12
+ { name = "Alexander Günter Hinrichsen" },
13
+ { name = "Jan Kalisch" },
14
+ { name = "Daniel Schröder" },
15
+ { name = "Cataldo De Simone" },
16
+ ]
17
+ dependencies = [
18
+ "pandas",
19
+ "numpy",
20
+ "pyarrow",
21
+ "python-calamine",
22
+ "numba",
23
+ "matplotlib",
24
+ "scipy",
25
+ "bibtexparser",
26
+ "scikit-learn"
27
+ ]
28
+ requires-python = ">=3.12"
29
+ readme = { file = "README.md", content-type = "text/markdown" }
30
+
31
+
32
+ [tool.setuptools.packages.find]
33
+ where = ["src"]
34
+
35
+
36
+ [tool.pytest.ini_options]
37
+ pythonpath = ["."]
38
+
39
+ [project.optional-dependencies]
40
+ docs = [
41
+ "sphinx",
42
+ "pydata-sphinx-theme",
43
+ "myst-parser",
44
+ "nbsphinx",
45
+ "sphinx-copybutton",
46
+ "bibtexparser",
47
+ ]
48
+
49
+
50
+ [tool.ruff]
51
+ # Set line length limit to a slightly higher value
52
+ line-length = 120
53
+ target-version = "py311"
54
+
55
+ [tool.ruff.lint]
56
+ select = ["E", "F", "I", "B", "UP"]
57
+ # E501: Ignore line length limit
58
+ ignore = ["E501"]
59
+
60
+ [tool.ruff.lint.per-file-ignores]
61
+ "*.ipynb" = ["E402"]
62
+
63
+ [tool.ruff.format]
64
+ # Use this option to keep lists and parameters lists as multi-line code when ended by a trailing comma
65
+ skip-magic-trailing-comma = false
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,85 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyDPEET
3
+ Version: 0.2.0
4
+ Summary: Python package to read, unify, and convert battery measurement data from arbitrary battery cyclers to Parquet files. This package also provides functions to process, evaluate, and visualise the standardised data.
5
+ Author: Alexander Günter Hinrichsen, Jan Kalisch, Daniel Schröder, Cataldo De Simone
6
+ Author-email: Anton Schlösser <a.schloesser@tu-berlin.de>, Martin Otto <m.otto.1@tu-berlin.de>
7
+ Requires-Python: >=3.12
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENCE.md
10
+ License-File: AUTHORS.md
11
+ Requires-Dist: pandas
12
+ Requires-Dist: numpy
13
+ Requires-Dist: pyarrow
14
+ Requires-Dist: python-calamine
15
+ Requires-Dist: numba
16
+ Requires-Dist: matplotlib
17
+ Requires-Dist: scipy
18
+ Requires-Dist: bibtexparser
19
+ Requires-Dist: scikit-learn
20
+ Provides-Extra: docs
21
+ Requires-Dist: sphinx; extra == "docs"
22
+ Requires-Dist: pydata-sphinx-theme; extra == "docs"
23
+ Requires-Dist: myst-parser; extra == "docs"
24
+ Requires-Dist: nbsphinx; extra == "docs"
25
+ Requires-Dist: sphinx-copybutton; extra == "docs"
26
+ Requires-Dist: bibtexparser; extra == "docs"
27
+ Dynamic: license-file
28
+
29
+ # PyDPEET - Fast and Easy Battery Data Unification, Processing, and Analysis
30
+
31
+ [[_TOC_]]
32
+
33
+ ## Disclaimer
34
+
35
+ This README is still under (re-)construction due to changes in the codebase.
36
+
37
+ ## Description
38
+
39
+ <!-- This project enables you to convert battery measurement data to a standardized format.
40
+
41
+ Cycler output their measurement data in different formats and different file types, like for example .csv and .xslx. Each has to be handled differently which makes it difficult to work with the data and that's the reason why we created a standardized format.
42
+ The standardized Data and Metadata can be used inside of the code and can be output as a .csv (Data), .xlsx (Data) or parquet(Data) to a output_path of your choosing.
43
+
44
+ Keeping additional data outside of our definition of the standardized columns and custom cycler handling is also possible. -->
45
+
46
+
47
+ ## Standardised Format
48
+
49
+ The standard columns are defined as follows:
50
+
51
+ ```python
52
+ STANDARD_COLUMNS = [
53
+ "Meta_Data",
54
+ "Step_Count",
55
+ "Voltage[V]",
56
+ "Current[A]",
57
+ "Temperature[°C]",
58
+ "Test_Time[s]",
59
+ "Date_Time",
60
+ "EIS_f[Hz]",
61
+ "EIS_Z_Real[Ohm]",
62
+ "EIS_Z_Imag[Ohm]",
63
+ "EIS_DC[A]"
64
+ ]
65
+ ```
66
+
67
+ ## Meta data
68
+
69
+ ## Supported Cyclers
70
+
71
+ ## Installation
72
+
73
+ ### For Developers
74
+
75
+ #### Rebuild package for "pip"
76
+
77
+ #### How to renew the documentation after implementing new functions
78
+
79
+ ### For Users
80
+
81
+ ## Usage
82
+
83
+ ## Custom Handling of Cycler
84
+
85
+ ## How to add a Custom Handling to the Project
@@ -0,0 +1,129 @@
1
+ AUTHORS.md
2
+ LICENCE.md
3
+ README.md
4
+ pyproject.toml
5
+ src/PyDPEET.egg-info/PKG-INFO
6
+ src/PyDPEET.egg-info/SOURCES.txt
7
+ src/PyDPEET.egg-info/dependency_links.txt
8
+ src/PyDPEET.egg-info/requires.txt
9
+ src/PyDPEET.egg-info/top_level.txt
10
+ src/pydpeet/__init__.py
11
+ src/pydpeet/settings.py
12
+ src/pydpeet/version.py
13
+ src/pydpeet/citations/__init__.py
14
+ src/pydpeet/citations/citeme.py
15
+ src/pydpeet/citations/html_writer.py
16
+ src/pydpeet/dev_utils/__init__.py
17
+ src/pydpeet/dev_utils/generate_inits/__init__.py
18
+ src/pydpeet/dev_utils/generate_inits/generate_inits.py
19
+ src/pydpeet/io/__init__.py
20
+ src/pydpeet/io/convert.py
21
+ src/pydpeet/io/map.py
22
+ src/pydpeet/io/read.py
23
+ src/pydpeet/io/write.py
24
+ src/pydpeet/io/configs/__init__.py
25
+ src/pydpeet/io/configs/config.py
26
+ src/pydpeet/io/configs/const.py
27
+ src/pydpeet/io/device/__init__.py
28
+ src/pydpeet/io/device/arbin_4_23_PV090331/__init__.py
29
+ src/pydpeet/io/device/arbin_4_23_PV090331/formatter.py
30
+ src/pydpeet/io/device/arbin_4_23_PV090331/mapper.py
31
+ src/pydpeet/io/device/arbin_4_23_PV090331/reader.py
32
+ src/pydpeet/io/device/arbin_8_00_PV221201/__init__.py
33
+ src/pydpeet/io/device/arbin_8_00_PV221201/formatter.py
34
+ src/pydpeet/io/device/arbin_8_00_PV221201/mapper.py
35
+ src/pydpeet/io/device/arbin_8_00_PV221201/reader.py
36
+ src/pydpeet/io/device/basytec_6_3_1_0/__init__.py
37
+ src/pydpeet/io/device/basytec_6_3_1_0/formatter.py
38
+ src/pydpeet/io/device/basytec_6_3_1_0/mapper.py
39
+ src/pydpeet/io/device/basytec_6_3_1_0/reader.py
40
+ src/pydpeet/io/device/digatron_4_20_6_236/__init__.py
41
+ src/pydpeet/io/device/digatron_4_20_6_236/formatter.py
42
+ src/pydpeet/io/device/digatron_4_20_6_236/mapper.py
43
+ src/pydpeet/io/device/digatron_4_20_6_236/reader.py
44
+ src/pydpeet/io/device/digatron_eis_4_20_6_236/__init__.py
45
+ src/pydpeet/io/device/digatron_eis_4_20_6_236/formatter.py
46
+ src/pydpeet/io/device/digatron_eis_4_20_6_236/mapper.py
47
+ src/pydpeet/io/device/digatron_eis_4_20_6_236/reader.py
48
+ src/pydpeet/io/device/neware_8_0_0_516/__init__.py
49
+ src/pydpeet/io/device/neware_8_0_0_516/formatter.py
50
+ src/pydpeet/io/device/neware_8_0_0_516/mapper.py
51
+ src/pydpeet/io/device/neware_8_0_0_516/reader.py
52
+ src/pydpeet/io/device/parstat_2_63_3/__init__.py
53
+ src/pydpeet/io/device/parstat_2_63_3/formatter.py
54
+ src/pydpeet/io/device/parstat_2_63_3/mapper.py
55
+ src/pydpeet/io/device/parstat_2_63_3/reader.py
56
+ src/pydpeet/io/device/safion_1_9/__init__.py
57
+ src/pydpeet/io/device/safion_1_9/formatter.py
58
+ src/pydpeet/io/device/safion_1_9/mapper.py
59
+ src/pydpeet/io/device/safion_1_9/reader.py
60
+ src/pydpeet/io/device/zahner/__init__.py
61
+ src/pydpeet/io/device/zahner/formatter.py
62
+ src/pydpeet/io/device/zahner/mapper.py
63
+ src/pydpeet/io/device/zahner/reader.py
64
+ src/pydpeet/io/device/zahner_new/__init__.py
65
+ src/pydpeet/io/device/zahner_new/formatter.py
66
+ src/pydpeet/io/device/zahner_new/mapper.py
67
+ src/pydpeet/io/device/zahner_new/reader.py
68
+ src/pydpeet/io/utils/__init__.py
69
+ src/pydpeet/io/utils/ext_path.py
70
+ src/pydpeet/io/utils/formatter_utils.py
71
+ src/pydpeet/io/utils/load_custom_module.py
72
+ src/pydpeet/io/utils/timing.py
73
+ src/pydpeet/process/__init__.py
74
+ src/pydpeet/process/analyze/__init__.py
75
+ src/pydpeet/process/analyze/average.py
76
+ src/pydpeet/process/analyze/capacity.py
77
+ src/pydpeet/process/analyze/cycle.py
78
+ src/pydpeet/process/analyze/efficiency.py
79
+ src/pydpeet/process/analyze/energy.py
80
+ src/pydpeet/process/analyze/power.py
81
+ src/pydpeet/process/analyze/resistance.py
82
+ src/pydpeet/process/analyze/soc.py
83
+ src/pydpeet/process/analyze/soh.py
84
+ src/pydpeet/process/analyze/utils.py
85
+ src/pydpeet/process/analyze/configs/__init__.py
86
+ src/pydpeet/process/analyze/configs/battery_config.py
87
+ src/pydpeet/process/analyze/configs/ocv_config.py
88
+ src/pydpeet/process/analyze/configs/step_analyzer_config.py
89
+ src/pydpeet/process/analyze/extract/__init__.py
90
+ src/pydpeet/process/analyze/extract/dva_ica.py
91
+ src/pydpeet/process/analyze/extract/ocv.py
92
+ src/pydpeet/process/merge/__init__.py
93
+ src/pydpeet/process/merge/series.py
94
+ src/pydpeet/process/sequence/__init__.py
95
+ src/pydpeet/process/sequence/step_analyzer.py
96
+ src/pydpeet/process/sequence/configs/__init__.py
97
+ src/pydpeet/process/sequence/configs/config.py
98
+ src/pydpeet/process/sequence/utils/__init__.py
99
+ src/pydpeet/process/sequence/utils/annotate/__init__.py
100
+ src/pydpeet/process/sequence/utils/annotate/annotate_primitives.py
101
+ src/pydpeet/process/sequence/utils/configs/CONFIG_Fallback.py
102
+ src/pydpeet/process/sequence/utils/configs/CONFIG_preprocessing.py
103
+ src/pydpeet/process/sequence/utils/configs/__init__.py
104
+ src/pydpeet/process/sequence/utils/console_prints/__init__.py
105
+ src/pydpeet/process/sequence/utils/console_prints/log_time.py
106
+ src/pydpeet/process/sequence/utils/postprocessing/__init__.py
107
+ src/pydpeet/process/sequence/utils/postprocessing/df_primitives_correction.py
108
+ src/pydpeet/process/sequence/utils/postprocessing/filter_df.py
109
+ src/pydpeet/process/sequence/utils/postprocessing/generate_instructions.py
110
+ src/pydpeet/process/sequence/utils/preprocessing/__init__.py
111
+ src/pydpeet/process/sequence/utils/preprocessing/calculate_thresholds.py
112
+ src/pydpeet/process/sequence/utils/processing/__init__.py
113
+ src/pydpeet/process/sequence/utils/processing/analyze_segments.py
114
+ src/pydpeet/process/sequence/utils/processing/attempt_to_merge_neighboring_segments.py
115
+ src/pydpeet/process/sequence/utils/processing/check_CV_results.py
116
+ src/pydpeet/process/sequence/utils/processing/check_power_zero_watt_segments.py
117
+ src/pydpeet/process/sequence/utils/processing/check_zero_length.py
118
+ src/pydpeet/process/sequence/utils/processing/split_in_segments.py
119
+ src/pydpeet/process/sequence/utils/processing/supress_smaller_segments.py
120
+ src/pydpeet/process/sequence/utils/processing/widen_constant_segments.py
121
+ src/pydpeet/process/sequence/utils/visualize/__init__.py
122
+ src/pydpeet/process/sequence/utils/visualize/visualize_data.py
123
+ src/pydpeet/res/__init__.py
124
+ src/pydpeet/utils/__init__.py
125
+ src/pydpeet/utils/logging_style.py
126
+ test/test_datatypes.py
127
+ test/test_directory_standardization.py
128
+ test/test_export.py
129
+ test/test_map.py
@@ -0,0 +1,17 @@
1
+ pandas
2
+ numpy
3
+ pyarrow
4
+ python-calamine
5
+ numba
6
+ matplotlib
7
+ scipy
8
+ bibtexparser
9
+ scikit-learn
10
+
11
+ [docs]
12
+ sphinx
13
+ pydata-sphinx-theme
14
+ myst-parser
15
+ nbsphinx
16
+ sphinx-copybutton
17
+ bibtexparser
@@ -0,0 +1 @@
1
+ pydpeet
@@ -0,0 +1,56 @@
1
+ """
2
+ Auto-generated __init__ file.
3
+ Created: 2026-03-06 15:11:49
4
+ """
5
+
6
+ # Re-export selected names from source modules
7
+
8
+ from pydpeet.citations.citeme import print_references, write_to_bibtex
9
+ from pydpeet.io.convert import convert
10
+ from pydpeet.io.map import mapping
11
+ from pydpeet.io.read import read
12
+ from pydpeet.io.write import write
13
+ from pydpeet.process.analyze.capacity import add_capacity
14
+ from pydpeet.process.analyze.configs.battery_config import (
15
+ BatteryConfig,
16
+ battery_config_default,
17
+ hakadi_nmc_1500,
18
+ lgm50lt_nmc_4800,
19
+ )
20
+ from pydpeet.process.analyze.extract.ocv import extract_ocv_iocv
21
+ from pydpeet.process.analyze.resistance import add_resistance_internal
22
+ from pydpeet.process.analyze.soc import SocMethod, add_soc
23
+ from pydpeet.process.merge.series import merge_into_series
24
+ from pydpeet.process.sequence.step_analyzer import add_primitive_segments, extract_sequence_overview
25
+ from pydpeet.process.sequence.utils.postprocessing.df_primitives_correction import df_primitives_correction
26
+ from pydpeet.process.sequence.utils.postprocessing.filter_df import filter_and_split_df_by_blocks
27
+ from pydpeet.process.sequence.utils.postprocessing.generate_instructions import generate_instructions
28
+ from pydpeet.process.sequence.utils.visualize.visualize_data import visualize_phases
29
+ from pydpeet.utils.logging_style import set_logging_style
30
+
31
+ # Public API for this package
32
+ __all__ = [
33
+ "BatteryConfig",
34
+ "SocMethod",
35
+ "add_capacity",
36
+ "add_primitive_segments",
37
+ "add_resistance_internal",
38
+ "add_soc",
39
+ "battery_config_default",
40
+ "convert",
41
+ "df_primitives_correction",
42
+ "extract_ocv_iocv",
43
+ "extract_sequence_overview",
44
+ "filter_and_split_df_by_blocks",
45
+ "generate_instructions",
46
+ "hakadi_nmc_1500",
47
+ "lgm50lt_nmc_4800",
48
+ "mapping",
49
+ "merge_into_series",
50
+ "print_references",
51
+ "read",
52
+ "set_logging_style",
53
+ "visualize_phases",
54
+ "write",
55
+ "write_to_bibtex",
56
+ ]
@@ -0,0 +1,7 @@
1
+ """
2
+ Auto-generated __init__ file.
3
+ Created: 2026-03-06 15:11:49
4
+ """
5
+
6
+ # Restrictive package init: start with no public API
7
+ __all__ = []