minplascalc 0.7.0__tar.gz → 1.0.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.
@@ -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,116 @@
1
+ Metadata-Version: 2.4
2
+ Name: minplascalc
3
+ Version: 1.0.0
4
+ Summary: A simple set of tools for doing calculations of thermal plasma compositions relevant to metallurgical problems using Python 3
5
+ Project-URL: Homepage, https://github.com/quinnreynolds/minplascalc
6
+ Author-email: Quinn Reynolds <quinnr@mintek.co.za>
7
+ License: GPLv3
8
+ License-File: LICENSE
9
+ Keywords: composition,gibbs,plasma
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
17
+ Classifier: Topic :: Scientific/Engineering :: Physics
18
+ Requires-Python: >=3.11
19
+ Requires-Dist: numpy
20
+ Requires-Dist: scipy
21
+ Description-Content-Type: text/x-rst
22
+
23
+ README
24
+ ======
25
+
26
+ .. image:: https://github.com/quinnreynolds/minplascalc/actions/workflows/on-push.yml/badge.svg
27
+ :target: https://github.com/quinnreynolds/minplascalc/actions/workflows/on-push.yml/badge.svg
28
+
29
+ .. image:: https://raw.githubusercontent.com/quinnreynolds/minplascalc/coverage/coverage.svg?raw=true
30
+ :target: https://raw.githubusercontent.com/quinnreynolds/minplascalc/coverage/coverage.svg?raw=true
31
+
32
+
33
+ A simple set of tools in Python 3 for doing calculations of thermal plasma
34
+ compositions relevant to metallurgical problems.
35
+
36
+ *Quinn Reynolds, MINTEK Pyrometallurgy Division, 2018-present*
37
+
38
+
39
+ What is this repository for?
40
+ ----------------------------
41
+
42
+ * You're here because you want to calculate plasma compositions,
43
+ thermodynamics, and physical and radiative properties. This package will
44
+ do most of those things for LTE plasmas, to varying degrees of fidelity.
45
+ * Version `v1.0.0 <https://github.com/quinnreynolds/minplascalc/releases/latest>`_.
46
+
47
+
48
+ Quick start
49
+ -----------
50
+
51
+ * Simply install the package with ``pip install minplascalc``.
52
+ * You should now be able to run the example scripts in the ``examples``
53
+ directory.
54
+ * The package is still in development, so expect bugs and changes.
55
+
56
+
57
+ Documentation
58
+ -------------
59
+
60
+ A full set of documentation is available online at
61
+ `https://quinnreynolds.github.io/minplascalc/ <https://quinnreynolds.github.io/minplascalc/>`_.
62
+
63
+
64
+ Workflow for developers/contributors
65
+ ------------------------------------
66
+
67
+ * First, clone the repository. You'll get the package and some test drivers.
68
+ * Since we are using `uv <https://docs.astral.sh/uv/>`_, install it
69
+ by following `instructions on their website <https://docs.astral.sh/uv/getting-started/installation/>`_.
70
+ * Run ``uv sync --python 3.13`` to create a virtual environment at ``.venv``,
71
+ with ``python 3.13`` and all the necessary dependencies.
72
+ * To test if the package is working, run ``uv run pytest``. All tests should pass.
73
+
74
+ Next time, you just need to activate the virtual environment with
75
+
76
+ * (macOs and Linux) ``source .venv/bin/activate``.
77
+
78
+ * (Windows) ``.venv\Scripts\activate``.
79
+
80
+
81
+ Before pushing to GitHub, run the following commands:
82
+
83
+ 1. Update dependencies with ``just update-env``.
84
+ 2. Run quality assurance checks (code linting) checks with ``just qa``.
85
+ 3. Run type checks with ``just type-check``.
86
+ 4. Run unit tests with ``just tests``.
87
+ 5. Run unit tests with coverage and generate a badge with ``just tests-cov``.
88
+ 6. Build the documentation with ``just build-docs``.
89
+
90
+
91
+ Contribution guidelines
92
+ -----------------------
93
+
94
+ * Writing tests: TBC
95
+ * Code review: TBC
96
+ * Other guidelines: TBC
97
+
98
+
99
+ Who do I talk to?
100
+ -----------------
101
+
102
+ * quinnr@mintek.co.za
103
+
104
+
105
+ References
106
+ ----------
107
+
108
+ * List of references are available at `the reference section <https://quinnreynolds.github.io/minplascalc/references/_bibliography.html>`_.
109
+ * To add a reference, add a new entry to the ``docs/references/_bibliography.rst`` file.
110
+
111
+
112
+ Science behind the code
113
+ -----------------------
114
+
115
+ A brief overview of the science behind the code is available at
116
+ `the Background/Theory section <https://quinnreynolds.github.io/minplascalc/theory/Background_Theory.html>`_.
@@ -0,0 +1,94 @@
1
+ README
2
+ ======
3
+
4
+ .. image:: https://github.com/quinnreynolds/minplascalc/actions/workflows/on-push.yml/badge.svg
5
+ :target: https://github.com/quinnreynolds/minplascalc/actions/workflows/on-push.yml/badge.svg
6
+
7
+ .. image:: https://raw.githubusercontent.com/quinnreynolds/minplascalc/coverage/coverage.svg?raw=true
8
+ :target: https://raw.githubusercontent.com/quinnreynolds/minplascalc/coverage/coverage.svg?raw=true
9
+
10
+
11
+ A simple set of tools in Python 3 for doing calculations of thermal plasma
12
+ compositions relevant to metallurgical problems.
13
+
14
+ *Quinn Reynolds, MINTEK Pyrometallurgy Division, 2018-present*
15
+
16
+
17
+ What is this repository for?
18
+ ----------------------------
19
+
20
+ * You're here because you want to calculate plasma compositions,
21
+ thermodynamics, and physical and radiative properties. This package will
22
+ do most of those things for LTE plasmas, to varying degrees of fidelity.
23
+ * Version `v1.0.0 <https://github.com/quinnreynolds/minplascalc/releases/latest>`_.
24
+
25
+
26
+ Quick start
27
+ -----------
28
+
29
+ * Simply install the package with ``pip install minplascalc``.
30
+ * You should now be able to run the example scripts in the ``examples``
31
+ directory.
32
+ * The package is still in development, so expect bugs and changes.
33
+
34
+
35
+ Documentation
36
+ -------------
37
+
38
+ A full set of documentation is available online at
39
+ `https://quinnreynolds.github.io/minplascalc/ <https://quinnreynolds.github.io/minplascalc/>`_.
40
+
41
+
42
+ Workflow for developers/contributors
43
+ ------------------------------------
44
+
45
+ * First, clone the repository. You'll get the package and some test drivers.
46
+ * Since we are using `uv <https://docs.astral.sh/uv/>`_, install it
47
+ by following `instructions on their website <https://docs.astral.sh/uv/getting-started/installation/>`_.
48
+ * Run ``uv sync --python 3.13`` to create a virtual environment at ``.venv``,
49
+ with ``python 3.13`` and all the necessary dependencies.
50
+ * To test if the package is working, run ``uv run pytest``. All tests should pass.
51
+
52
+ Next time, you just need to activate the virtual environment with
53
+
54
+ * (macOs and Linux) ``source .venv/bin/activate``.
55
+
56
+ * (Windows) ``.venv\Scripts\activate``.
57
+
58
+
59
+ Before pushing to GitHub, run the following commands:
60
+
61
+ 1. Update dependencies with ``just update-env``.
62
+ 2. Run quality assurance checks (code linting) checks with ``just qa``.
63
+ 3. Run type checks with ``just type-check``.
64
+ 4. Run unit tests with ``just tests``.
65
+ 5. Run unit tests with coverage and generate a badge with ``just tests-cov``.
66
+ 6. Build the documentation with ``just build-docs``.
67
+
68
+
69
+ Contribution guidelines
70
+ -----------------------
71
+
72
+ * Writing tests: TBC
73
+ * Code review: TBC
74
+ * Other guidelines: TBC
75
+
76
+
77
+ Who do I talk to?
78
+ -----------------
79
+
80
+ * quinnr@mintek.co.za
81
+
82
+
83
+ References
84
+ ----------
85
+
86
+ * List of references are available at `the reference section <https://quinnreynolds.github.io/minplascalc/references/_bibliography.html>`_.
87
+ * To add a reference, add a new entry to the ``docs/references/_bibliography.rst`` file.
88
+
89
+
90
+ Science behind the code
91
+ -----------------------
92
+
93
+ A brief overview of the science behind the code is available at
94
+ `the Background/Theory section <https://quinnreynolds.github.io/minplascalc/theory/Background_Theory.html>`_.