pyresiflex 0.1.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 (60) hide show
  1. pyresiflex-0.1.0/.gitignore +480 -0
  2. pyresiflex-0.1.0/LICENSE +21 -0
  3. pyresiflex-0.1.0/PKG-INFO +97 -0
  4. pyresiflex-0.1.0/README.md +74 -0
  5. pyresiflex-0.1.0/pyproject.toml +102 -0
  6. pyresiflex-0.1.0/pyresiflex/__init__.py +1 -0
  7. pyresiflex-0.1.0/pyresiflex/cable/__init__.py +0 -0
  8. pyresiflex-0.1.0/pyresiflex/cable/cable.py +100 -0
  9. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/Alpha Wire 9011A Tech Data.pdf +0 -0
  10. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cable_properties.yaml +19 -0
  11. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/.gitignore +2 -0
  12. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/bolsigdoc0724.pdf +0 -0
  13. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/bolsigminus.exe +0 -0
  14. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/bolsigplus.exe +0 -0
  15. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/concat_xsections.dat +2834 -0
  16. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/input_bolsig_Minesi2022.dat +128 -0
  17. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/results/2000K_Minesi2022.csv +101 -0
  18. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/results/2000K_Minesi2022.dat +2308 -0
  19. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/results/3000K_Minesi2022.csv +101 -0
  20. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/results/3000K_Minesi2022.dat +2308 -0
  21. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/cross_sections/run_bolsig.py +170 -0
  22. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/fig16_remoteConfiguration.csv +1254 -0
  23. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/fig3_anodeConfiguration.csv +1254 -0
  24. pyresiflex-0.1.0/pyresiflex/data/Minesi2022/fig7_ne_vs_time.dat +103 -0
  25. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/current_Load_A.csv +84 -0
  26. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/current_Load_B.csv +80 -0
  27. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/current_Load_C.csv +81 -0
  28. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/current_Load_D.csv +105 -0
  29. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/energy_Load_A.csv +128 -0
  30. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/energy_Load_B.csv +110 -0
  31. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/energy_Load_C.csv +117 -0
  32. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/energy_Load_D.csv +129 -0
  33. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/voltage_Load_A.csv +77 -0
  34. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/voltage_Load_B.csv +85 -0
  35. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/voltage_Load_C.csv +50 -0
  36. pyresiflex-0.1.0/pyresiflex/data/Pavan2025/Fig8/voltage_Load_D.csv +50 -0
  37. pyresiflex-0.1.0/pyresiflex/data/PerrinTerrin2025/C1run_6_V_13kV_frep_20kHz_Pth_50kW_Qair_55p5per_alpha_40__0020_0.csv +10005 -0
  38. pyresiflex-0.1.0/pyresiflex/data/article_figures/.gitignore +4 -0
  39. pyresiflex-0.1.0/pyresiflex/data/article_one_column_figure.mplstyle +34 -0
  40. pyresiflex-0.1.0/pyresiflex/data/article_two_columns_figure.mplstyle +34 -0
  41. pyresiflex-0.1.0/pyresiflex/experiment/__init__.py +0 -0
  42. pyresiflex-0.1.0/pyresiflex/experiment/purely_resistive_experiment.py +920 -0
  43. pyresiflex-0.1.0/pyresiflex/generator/__init__.py +0 -0
  44. pyresiflex-0.1.0/pyresiflex/generator/base_generator.py +182 -0
  45. pyresiflex-0.1.0/pyresiflex/generator/generator_complex_impedance.py +218 -0
  46. pyresiflex-0.1.0/pyresiflex/generator/generator_real_impedance.py +227 -0
  47. pyresiflex-0.1.0/pyresiflex/load/__init__.py +0 -0
  48. pyresiflex-0.1.0/pyresiflex/load/base_load.py +198 -0
  49. pyresiflex-0.1.0/pyresiflex/load/steady_impedance.py +145 -0
  50. pyresiflex-0.1.0/pyresiflex/load/time_varying_resistance.py +306 -0
  51. pyresiflex-0.1.0/pyresiflex/misc/__init__.py +0 -0
  52. pyresiflex-0.1.0/pyresiflex/misc/load_data.py +54 -0
  53. pyresiflex-0.1.0/pyresiflex/misc/plot.py +167 -0
  54. pyresiflex-0.1.0/pyresiflex/misc/units.py +25 -0
  55. pyresiflex-0.1.0/pyresiflex/misc/utils.py +59 -0
  56. pyresiflex-0.1.0/pyresiflex/py.typed +0 -0
  57. pyresiflex-0.1.0/pyresiflex/solver/__init__.py +0 -0
  58. pyresiflex-0.1.0/pyresiflex/solver/base_solution.py +691 -0
  59. pyresiflex-0.1.0/pyresiflex/solver/purely_resistive_solution.py +288 -0
  60. pyresiflex-0.1.0/pyresiflex/solver/steady_impedance_solution.py +420 -0
@@ -0,0 +1,480 @@
1
+ # setuptools-scm
2
+ version.py
3
+
4
+ # Sphinx automatic generation of API
5
+ docs/_api/
6
+ docs/auto_examples/
7
+ docs/source/backreferences/
8
+
9
+ # Combined environments
10
+ ci/combined-environment-*.yml
11
+
12
+ # Created by https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks,vim,visualstudiocode,pycharm,emacs,linux,macos,windows
13
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python,jupyternotebooks,vim,visualstudiocode,pycharm,emacs,linux,macos,windows
14
+
15
+ ### Emacs ###
16
+ # -*- mode: gitignore; -*-
17
+ *~
18
+ \#*\#
19
+ /.emacs.desktop
20
+ /.emacs.desktop.lock
21
+ *.elc
22
+ auto-save-list
23
+ tramp
24
+ .\#*
25
+
26
+ # Org-mode
27
+ .org-id-locations
28
+ *_archive
29
+
30
+ # flymake-mode
31
+ *_flymake.*
32
+
33
+ # eshell files
34
+ /eshell/history
35
+ /eshell/lastdir
36
+
37
+ # elpa packages
38
+ /elpa/
39
+
40
+ # reftex files
41
+ *.rel
42
+
43
+ # AUCTeX auto folder
44
+ /auto/
45
+
46
+ # cask packages
47
+ .cask/
48
+ dist/
49
+
50
+ # Flycheck
51
+ flycheck_*.el
52
+
53
+ # server auth directory
54
+ /server/
55
+
56
+ # projectiles files
57
+ .projectile
58
+
59
+ # directory configuration
60
+ .dir-locals.el
61
+
62
+ # network security
63
+ /network-security.data
64
+
65
+
66
+ ### JupyterNotebooks ###
67
+ # gitignore template for Jupyter Notebooks
68
+ # website: http://jupyter.org/
69
+
70
+ .ipynb_checkpoints
71
+ */.ipynb_checkpoints/*
72
+
73
+ # IPython
74
+ profile_default/
75
+ ipython_config.py
76
+
77
+ # Remove previous ipynb_checkpoints
78
+ # git rm -r .ipynb_checkpoints/
79
+
80
+ ### Linux ###
81
+
82
+ # temporary files which can be created if a process still has a handle open of a deleted file
83
+ .fuse_hidden*
84
+
85
+ # KDE directory preferences
86
+ .directory
87
+
88
+ # Linux trash folder which might appear on any partition or disk
89
+ .Trash-*
90
+
91
+ # .nfs files are created when an open file is removed but is still being accessed
92
+ .nfs*
93
+
94
+ ### macOS ###
95
+ # General
96
+ .DS_Store
97
+ .AppleDouble
98
+ .LSOverride
99
+
100
+ # Icon must end with two \r
101
+ Icon
102
+
103
+ # Thumbnails
104
+ ._*
105
+
106
+ # Files that might appear in the root of a volume
107
+ .DocumentRevisions-V100
108
+ .fseventsd
109
+ .Spotlight-V100
110
+ .TemporaryItems
111
+ .Trashes
112
+ .VolumeIcon.icns
113
+ .com.apple.timemachine.donotpresent
114
+
115
+ # Directories potentially created on remote AFP share
116
+ .AppleDB
117
+ .AppleDesktop
118
+ Network Trash Folder
119
+ Temporary Items
120
+ .apdisk
121
+
122
+ ### macOS Patch ###
123
+ # iCloud generated files
124
+ *.icloud
125
+
126
+ ### PyCharm ###
127
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
128
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
129
+
130
+ # User-specific stuff
131
+ .idea/**/workspace.xml
132
+ .idea/**/tasks.xml
133
+ .idea/**/usage.statistics.xml
134
+ .idea/**/dictionaries
135
+ .idea/**/shelf
136
+
137
+ # AWS User-specific
138
+ .idea/**/aws.xml
139
+
140
+ # Generated files
141
+ .idea/**/contentModel.xml
142
+
143
+ # Sensitive or high-churn files
144
+ .idea/**/dataSources/
145
+ .idea/**/dataSources.ids
146
+ .idea/**/dataSources.local.xml
147
+ .idea/**/sqlDataSources.xml
148
+ .idea/**/dynamic.xml
149
+ .idea/**/uiDesigner.xml
150
+ .idea/**/dbnavigator.xml
151
+
152
+ # Gradle
153
+ .idea/**/gradle.xml
154
+ .idea/**/libraries
155
+
156
+ # Gradle and Maven with auto-import
157
+ # When using Gradle or Maven with auto-import, you should exclude module files,
158
+ # since they will be recreated, and may cause churn. Uncomment if using
159
+ # auto-import.
160
+ # .idea/artifacts
161
+ # .idea/compiler.xml
162
+ # .idea/jarRepositories.xml
163
+ # .idea/modules.xml
164
+ # .idea/*.iml
165
+ # .idea/modules
166
+ # *.iml
167
+ # *.ipr
168
+
169
+ # CMake
170
+ cmake-build-*/
171
+
172
+ # Mongo Explorer plugin
173
+ .idea/**/mongoSettings.xml
174
+
175
+ # File-based project format
176
+ *.iws
177
+
178
+ # IntelliJ
179
+ out/
180
+
181
+ # mpeltonen/sbt-idea plugin
182
+ .idea_modules/
183
+
184
+ # JIRA plugin
185
+ atlassian-ide-plugin.xml
186
+
187
+ # Cursive Clojure plugin
188
+ .idea/replstate.xml
189
+
190
+ # SonarLint plugin
191
+ .idea/sonarlint/
192
+
193
+ # Crashlytics plugin (for Android Studio and IntelliJ)
194
+ com_crashlytics_export_strings.xml
195
+ crashlytics.properties
196
+ crashlytics-build.properties
197
+ fabric.properties
198
+
199
+ # Editor-based Rest Client
200
+ .idea/httpRequests
201
+
202
+ # Android studio 3.1+ serialized cache file
203
+ .idea/caches/build_file_checksums.ser
204
+
205
+ ### PyCharm Patch ###
206
+ # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
207
+
208
+ # *.iml
209
+ # modules.xml
210
+ # .idea/misc.xml
211
+ # *.ipr
212
+
213
+ # Sonarlint plugin
214
+ # https://plugins.jetbrains.com/plugin/7973-sonarlint
215
+ .idea/**/sonarlint/
216
+
217
+ # SonarQube Plugin
218
+ # https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin
219
+ .idea/**/sonarIssues.xml
220
+
221
+ # Markdown Navigator plugin
222
+ # https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced
223
+ .idea/**/markdown-navigator.xml
224
+ .idea/**/markdown-navigator-enh.xml
225
+ .idea/**/markdown-navigator/
226
+
227
+ # Cache file creation bug
228
+ # See https://youtrack.jetbrains.com/issue/JBR-2257
229
+ .idea/$CACHE_FILE$
230
+
231
+ # CodeStream plugin
232
+ # https://plugins.jetbrains.com/plugin/12206-codestream
233
+ .idea/codestream.xml
234
+
235
+ # Azure Toolkit for IntelliJ plugin
236
+ # https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
237
+ .idea/**/azureSettings.xml
238
+
239
+ ### Python ###
240
+ # Byte-compiled / optimized / DLL files
241
+ __pycache__/
242
+ *.py[cod]
243
+ *$py.class
244
+
245
+ # C extensions
246
+ *.so
247
+
248
+ # Distribution / packaging
249
+ .Python
250
+ build/
251
+ develop-eggs/
252
+ downloads/
253
+ eggs/
254
+ .eggs/
255
+ lib/
256
+ lib64/
257
+ parts/
258
+ sdist/
259
+ var/
260
+ wheels/
261
+ share/python-wheels/
262
+ *.egg-info/
263
+ .installed.cfg
264
+ *.egg
265
+ MANIFEST
266
+
267
+ # PyInstaller
268
+ # Usually these files are written by a python script from a template
269
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
270
+ *.manifest
271
+ *.spec
272
+
273
+ # Installer logs
274
+ pip-log.txt
275
+ pip-delete-this-directory.txt
276
+
277
+ # Unit test / coverage reports
278
+ htmlcov/
279
+ .tox/
280
+ .nox/
281
+ .coverage
282
+ .coverage.*
283
+ .cache
284
+ nosetests.xml
285
+ coverage.xml
286
+ *.cover
287
+ *.py,cover
288
+ .hypothesis/
289
+ .pytest_cache/
290
+ cover/
291
+
292
+ # Translations
293
+ *.mo
294
+ *.pot
295
+
296
+ # Django stuff:
297
+ *.log
298
+ local_settings.py
299
+ db.sqlite3
300
+ db.sqlite3-journal
301
+
302
+ # Flask stuff:
303
+ instance/
304
+ .webassets-cache
305
+
306
+ # Scrapy stuff:
307
+ .scrapy
308
+
309
+ # Sphinx documentation
310
+ docs/_build/
311
+
312
+ # PyBuilder
313
+ .pybuilder/
314
+ target/
315
+
316
+ # Jupyter Notebook
317
+
318
+ # IPython
319
+
320
+ # pyenv
321
+ # For a library or package, you might want to ignore these files since the code is
322
+ # intended to run in multiple environments; otherwise, check them in:
323
+ # .python-version
324
+
325
+ # pipenv
326
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
327
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
328
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
329
+ # install all needed dependencies.
330
+ #Pipfile.lock
331
+
332
+ # poetry
333
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
334
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
335
+ # commonly ignored for libraries.
336
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
337
+ #poetry.lock
338
+
339
+ # pdm
340
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
341
+ #pdm.lock
342
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
343
+ # in version control.
344
+ # https://pdm.fming.dev/#use-with-ide
345
+ .pdm.toml
346
+
347
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
348
+ __pypackages__/
349
+
350
+ # Celery stuff
351
+ celerybeat-schedule
352
+ celerybeat.pid
353
+
354
+ # SageMath parsed files
355
+ *.sage.py
356
+
357
+ # Environments
358
+ .env
359
+ .venv
360
+ env/
361
+ venv/
362
+ ENV/
363
+ env.bak/
364
+ venv.bak/
365
+
366
+ # Spyder project settings
367
+ .spyderproject
368
+ .spyproject
369
+
370
+ # Rope project settings
371
+ .ropeproject
372
+
373
+ # mkdocs documentation
374
+ /site
375
+
376
+ # mypy
377
+ .mypy_cache/
378
+ .dmypy.json
379
+ dmypy.json
380
+
381
+ # Pyre type checker
382
+ .pyre/
383
+
384
+ # pytype static type analyzer
385
+ .pytype/
386
+
387
+ # Cython debug symbols
388
+ cython_debug/
389
+
390
+ # PyCharm
391
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
392
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
393
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
394
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
395
+ #.idea/
396
+
397
+ ### Python Patch ###
398
+ # Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
399
+ poetry.toml
400
+
401
+ # ruff
402
+ .ruff_cache/
403
+
404
+ # LSP config files
405
+ pyrightconfig.json
406
+
407
+ ### Vim ###
408
+ # Swap
409
+ [._]*.s[a-v][a-z]
410
+ !*.svg # comment out if you don't need vector files
411
+ [._]*.sw[a-p]
412
+ [._]s[a-rt-v][a-z]
413
+ [._]ss[a-gi-z]
414
+ [._]sw[a-p]
415
+
416
+ # Session
417
+ Session.vim
418
+ Sessionx.vim
419
+
420
+ # Temporary
421
+ .netrwhist
422
+ # Auto-generated tag files
423
+ tags
424
+ # Persistent undo
425
+ [._]*.un~
426
+
427
+ ### VisualStudioCode ###
428
+ # .vscode/
429
+ # .vscode/*
430
+ # !.vscode/settings.json
431
+ # !.vscode/tasks.json
432
+ # !.vscode/launch.json
433
+ # !.vscode/extensions.json
434
+ # !.vscode/*.code-snippets
435
+
436
+ # Local History for Visual Studio Code
437
+ .history/
438
+
439
+ # Built Visual Studio Code Extensions
440
+ *.vsix
441
+
442
+ ### VisualStudioCode Patch ###
443
+ # Ignore all local history of files
444
+ .history
445
+ .ionide
446
+
447
+ ### Windows ###
448
+ # Windows thumbnail cache files
449
+ Thumbs.db
450
+ Thumbs.db:encryptable
451
+ ehthumbs.db
452
+ ehthumbs_vista.db
453
+
454
+ # Dump file
455
+ *.stackdump
456
+
457
+ # Folder config file
458
+ [Dd]esktop.ini
459
+
460
+ # Recycle Bin used on file shares
461
+ $RECYCLE.BIN/
462
+
463
+ # Windows Installer files
464
+ *.cab
465
+ *.msi
466
+ *.msix
467
+ *.msm
468
+ *.msp
469
+
470
+ # Windows shortcuts
471
+ *.lnk
472
+
473
+ # End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks,vim,visualstudiocode,pycharm,emacs,linux,macos,windows
474
+ docs/sg_execution_times.rst
475
+ examples/H2O.json
476
+ examples/O+.json
477
+ examples/SiO.json
478
+
479
+ uv.lock
480
+ coverage/coverage.svg
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [year] [fullname]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyresiflex
3
+ Version: 0.1.0
4
+ Summary: PyResiFlex is a simple set of tools in Python to obtain load (plasma) Resistance from analysis of pulse reFlexions.
5
+ Project-URL: Homepage, https://github.com/pag1pag/pyresiflex
6
+ Author-email: Pierre-Antoine Goutier <pierre-antoine.goutier@spark-cleantech.eu>
7
+ License: MIT License
8
+ License-File: LICENSE
9
+ Keywords: plasma,resistance,signal
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
18
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
19
+ Classifier: Topic :: Scientific/Engineering :: Physics
20
+ Requires-Python: >=3.11
21
+ Requires-Dist: numpy
22
+ Description-Content-Type: text/markdown
23
+
24
+ # README
25
+
26
+ [![Build Status](https://github.com/pag1pag/pyresiflex/actions/workflows/on-push.yml/badge.svg)](https://github.com/pag1pag/pyresiflex/actions/workflows/on-push.yml/badge.svg)
27
+ [![Coverage Status](https://raw.githubusercontent.com/pag1pag/pyresiflex/refs/heads/coverage-badge/coverage.svg?raw=true)](https://raw.githubusercontent.com/pag1pag/pyresiflex/refs/heads/coverage-badge/coverage.svg?raw=true)
28
+ [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=958704955&skip_quickstart=true)
29
+
30
+ **PyResiFlex** is a simple set of tools in **Py**thon to obtain load (plasma) **Resi**stance from analysis of pulse re**Flex**ions.
31
+
32
+ ## Quick start
33
+
34
+ - Simply install the package with `pip install pyresiflex`.
35
+ - You should now be able to run the example scripts in the `examples` directory.
36
+
37
+ ## Example
38
+
39
+ ![GIF showing the reproduction of the Minesi2022 experiment](./docs/img/reproduce_Minesi2022_experiments.gif)
40
+
41
+ Example of the reproduction of the [Minesi2022](https://doi.org/10.1088/1361-6595/ac5cd4) experiment using PyResiFlex.
42
+
43
+ ## Documentation
44
+
45
+ A full set of documentation is available online at
46
+ [https://pag1pag.github.io/pyresiflex/](https://pag1pag.github.io/pyresiflex/).
47
+
48
+ ## Workflow for developers/contributors
49
+
50
+ GitHub Codespaces has been set up, so you can click on this button to quickly code and run the examples: [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=958704955&skip_quickstart=true)
51
+
52
+ You can also follow the instructions below, to set up the project on your machine:
53
+
54
+ - First, clone the repository with `git clone https://github.com/pag1pag/pyresiflex.git`.
55
+ - Since this package uses [uv](https://docs.astral.sh/uv/), install it by following [instructions on their website](https://docs.astral.sh/uv/getting-started/installation/).
56
+ - Update this Python package manager with `uv self update`.
57
+ - Run `uv sync` to create a virtual environment at `.venv`, with the latest version of Python and all the necessary dependencies.
58
+ - To test if the package is working, run `uv run pytest`. All tests should pass.
59
+
60
+ Next, you just need to activate the virtual environment with:
61
+
62
+ - (macOS and Linux) `source .venv/bin/activate`
63
+ - (Windows) `.venv\Scripts\activate`
64
+
65
+ Do not forget to activate it each time you are using this project.
66
+
67
+ Before pushing to GitHub, run the following commands in a terminal (with the virtual environment activated):
68
+
69
+ 1. Update dependencies with `just update-env`.
70
+ 1. Run quality assurance checks (code linting) with `just qa`.
71
+ 1. Run type checks with `just type-check`.
72
+ 1. Run unit tests with `just tests`.
73
+ 1. Run unit tests with coverage and generate a badge with `just tests-cov`.
74
+ 1. Build the documentation with `just build-docs`.
75
+
76
+ You could also run `just` to run all the above commands in one go.
77
+
78
+ ### Manually building the package
79
+
80
+ If you want to install `pyresiflex` to another environment, you can build the package and install it with `pip`:
81
+
82
+ - `(pyresiflex) uv build` will build a wheel `/whl` in the folder `./dist`.
83
+ - Activating another env, called `other_env`.
84
+ - `(other_env) pip install path/to/file.whl` should install `pyresiflex` in `other_env`.
85
+
86
+ ## Who do I talk to?
87
+
88
+ - Pierre-Antoine Goutier, Spark Cleantech & EM2C Lab, 2024-present, <pierre-antoine.goutier@spark-cleantech.eu>
89
+
90
+ ## References
91
+
92
+ - A list of references is available at [the reference section](https://pag1pag.github.io/pyresiflex/bibliography.html).
93
+ - To add a reference, add a new entry to the `./docs/bibliography.rst` file.
94
+
95
+ ## Note
96
+
97
+ According to [Oxford Learner's Dictionaries](https://www.oxfordlearnersdictionaries.com/definition/english/reflexion), *reflexion* is an old spelling of *reflection*.
@@ -0,0 +1,74 @@
1
+ # README
2
+
3
+ [![Build Status](https://github.com/pag1pag/pyresiflex/actions/workflows/on-push.yml/badge.svg)](https://github.com/pag1pag/pyresiflex/actions/workflows/on-push.yml/badge.svg)
4
+ [![Coverage Status](https://raw.githubusercontent.com/pag1pag/pyresiflex/refs/heads/coverage-badge/coverage.svg?raw=true)](https://raw.githubusercontent.com/pag1pag/pyresiflex/refs/heads/coverage-badge/coverage.svg?raw=true)
5
+ [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=958704955&skip_quickstart=true)
6
+
7
+ **PyResiFlex** is a simple set of tools in **Py**thon to obtain load (plasma) **Resi**stance from analysis of pulse re**Flex**ions.
8
+
9
+ ## Quick start
10
+
11
+ - Simply install the package with `pip install pyresiflex`.
12
+ - You should now be able to run the example scripts in the `examples` directory.
13
+
14
+ ## Example
15
+
16
+ ![GIF showing the reproduction of the Minesi2022 experiment](./docs/img/reproduce_Minesi2022_experiments.gif)
17
+
18
+ Example of the reproduction of the [Minesi2022](https://doi.org/10.1088/1361-6595/ac5cd4) experiment using PyResiFlex.
19
+
20
+ ## Documentation
21
+
22
+ A full set of documentation is available online at
23
+ [https://pag1pag.github.io/pyresiflex/](https://pag1pag.github.io/pyresiflex/).
24
+
25
+ ## Workflow for developers/contributors
26
+
27
+ GitHub Codespaces has been set up, so you can click on this button to quickly code and run the examples: [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=958704955&skip_quickstart=true)
28
+
29
+ You can also follow the instructions below, to set up the project on your machine:
30
+
31
+ - First, clone the repository with `git clone https://github.com/pag1pag/pyresiflex.git`.
32
+ - Since this package uses [uv](https://docs.astral.sh/uv/), install it by following [instructions on their website](https://docs.astral.sh/uv/getting-started/installation/).
33
+ - Update this Python package manager with `uv self update`.
34
+ - Run `uv sync` to create a virtual environment at `.venv`, with the latest version of Python and all the necessary dependencies.
35
+ - To test if the package is working, run `uv run pytest`. All tests should pass.
36
+
37
+ Next, you just need to activate the virtual environment with:
38
+
39
+ - (macOS and Linux) `source .venv/bin/activate`
40
+ - (Windows) `.venv\Scripts\activate`
41
+
42
+ Do not forget to activate it each time you are using this project.
43
+
44
+ Before pushing to GitHub, run the following commands in a terminal (with the virtual environment activated):
45
+
46
+ 1. Update dependencies with `just update-env`.
47
+ 1. Run quality assurance checks (code linting) with `just qa`.
48
+ 1. Run type checks with `just type-check`.
49
+ 1. Run unit tests with `just tests`.
50
+ 1. Run unit tests with coverage and generate a badge with `just tests-cov`.
51
+ 1. Build the documentation with `just build-docs`.
52
+
53
+ You could also run `just` to run all the above commands in one go.
54
+
55
+ ### Manually building the package
56
+
57
+ If you want to install `pyresiflex` to another environment, you can build the package and install it with `pip`:
58
+
59
+ - `(pyresiflex) uv build` will build a wheel `/whl` in the folder `./dist`.
60
+ - Activating another env, called `other_env`.
61
+ - `(other_env) pip install path/to/file.whl` should install `pyresiflex` in `other_env`.
62
+
63
+ ## Who do I talk to?
64
+
65
+ - Pierre-Antoine Goutier, Spark Cleantech & EM2C Lab, 2024-present, <pierre-antoine.goutier@spark-cleantech.eu>
66
+
67
+ ## References
68
+
69
+ - A list of references is available at [the reference section](https://pag1pag.github.io/pyresiflex/bibliography.html).
70
+ - To add a reference, add a new entry to the `./docs/bibliography.rst` file.
71
+
72
+ ## Note
73
+
74
+ According to [Oxford Learner's Dictionaries](https://www.oxfordlearnersdictionaries.com/definition/english/reflexion), *reflexion* is an old spelling of *reflection*.