HEACalculator 2.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.
Files changed (80) hide show
  1. heacalculator-2.0.0/.github/dependabot.yml +26 -0
  2. heacalculator-2.0.0/.github/workflows/gh-pages.yml +36 -0
  3. heacalculator-2.0.0/.github/workflows/lint.yml +34 -0
  4. heacalculator-2.0.0/.github/workflows/release.yml +43 -0
  5. heacalculator-2.0.0/.github/workflows/tests.yml +46 -0
  6. heacalculator-2.0.0/.gitignore +127 -0
  7. heacalculator-2.0.0/.pre-commit-config.yaml +35 -0
  8. heacalculator-2.0.0/CITATION.cff +15 -0
  9. heacalculator-2.0.0/HEACalculator.png +0 -0
  10. heacalculator-2.0.0/LICENSE +621 -0
  11. heacalculator-2.0.0/PKG-INFO +278 -0
  12. heacalculator-2.0.0/README.md +252 -0
  13. heacalculator-2.0.0/docs/api_reference.md +81 -0
  14. heacalculator-2.0.0/docs/faq.md +113 -0
  15. heacalculator-2.0.0/docs/img/icon.png +0 -0
  16. heacalculator-2.0.0/docs/index.md +66 -0
  17. heacalculator-2.0.0/docs/installation.md +177 -0
  18. heacalculator-2.0.0/docs/javascripts/mathjax.js +19 -0
  19. heacalculator-2.0.0/docs/overview.md +177 -0
  20. heacalculator-2.0.0/docs/stylesheets/extra.css +9 -0
  21. heacalculator-2.0.0/docs/troubleshooting.md +156 -0
  22. heacalculator-2.0.0/docs/usage.md +285 -0
  23. heacalculator-2.0.0/mkdocs.yml +91 -0
  24. heacalculator-2.0.0/pyproject.toml +131 -0
  25. heacalculator-2.0.0/src/HEACalculator/__init__.py +8 -0
  26. heacalculator-2.0.0/src/HEACalculator/__main__.py +25 -0
  27. heacalculator-2.0.0/src/HEACalculator/app.py +771 -0
  28. heacalculator-2.0.0/src/HEACalculator/cli.py +172 -0
  29. heacalculator-2.0.0/src/HEACalculator/core/__init__.py +13 -0
  30. heacalculator-2.0.0/src/HEACalculator/core/composition.py +171 -0
  31. heacalculator-2.0.0/src/HEACalculator/core/converter.py +80 -0
  32. heacalculator-2.0.0/src/HEACalculator/core/hea.py +228 -0
  33. heacalculator-2.0.0/src/HEACalculator/core/helpers.py +79 -0
  34. heacalculator-2.0.0/src/HEACalculator/core/models.py +235 -0
  35. heacalculator-2.0.0/src/HEACalculator/core/thermodynamics.py +548 -0
  36. heacalculator-2.0.0/src/HEACalculator/data/__init__.py +10 -0
  37. heacalculator-2.0.0/src/HEACalculator/data/elements.json +1418 -0
  38. heacalculator-2.0.0/src/HEACalculator/data/elements.py +109 -0
  39. heacalculator-2.0.0/src/HEACalculator/data/formation_enthalpy.json +437 -0
  40. heacalculator-2.0.0/src/HEACalculator/data/formation_enthalpy.py +41 -0
  41. heacalculator-2.0.0/src/HEACalculator/data/miedema_enthalpy.py +369 -0
  42. heacalculator-2.0.0/src/HEACalculator/data/miedema_params.json +37 -0
  43. heacalculator-2.0.0/src/HEACalculator/data/mixing_enthalpy.json +2630 -0
  44. heacalculator-2.0.0/src/HEACalculator/data/mixing_enthalpy.py +43 -0
  45. heacalculator-2.0.0/src/HEACalculator/data/model_miedema_interfacial.json +16 -0
  46. heacalculator-2.0.0/src/HEACalculator/data/model_miedema_params.json +37 -0
  47. heacalculator-2.0.0/src/HEACalculator/data/model_niessen_structural.json +18 -0
  48. heacalculator-2.0.0/src/HEACalculator/data/model_radii.json +38 -0
  49. heacalculator-2.0.0/src/HEACalculator/data/model_radii.py +31 -0
  50. heacalculator-2.0.0/src/HEACalculator/exceptions.py +24 -0
  51. heacalculator-2.0.0/src/HEACalculator/gui/HEACalculatorMain.py +274 -0
  52. heacalculator-2.0.0/src/HEACalculator/gui/HEACalculator_rc.py +17758 -0
  53. heacalculator-2.0.0/src/HEACalculator/gui/__init__.py +7 -0
  54. heacalculator-2.0.0/src/HEACalculator/gui/batchCalculationsPage.py +3542 -0
  55. heacalculator-2.0.0/src/HEACalculator/gui/parametersPage.py +3599 -0
  56. heacalculator-2.0.0/src/HEACalculator/images/ic1.png +0 -0
  57. heacalculator-2.0.0/src/HEACalculator/images/icon.ico +0 -0
  58. heacalculator-2.0.0/src/HEACalculator/images/multiply.png +0 -0
  59. heacalculator-2.0.0/src/HEACalculator/py.typed +0 -0
  60. heacalculator-2.0.0/src/HEACalculator/utils.py +86 -0
  61. heacalculator-2.0.0/tests/core/conftest.py +69 -0
  62. heacalculator-2.0.0/tests/core/test_composition.py +289 -0
  63. heacalculator-2.0.0/tests/core/test_converter.py +112 -0
  64. heacalculator-2.0.0/tests/core/test_hea.py +541 -0
  65. heacalculator-2.0.0/tests/core/test_helpers.py +149 -0
  66. heacalculator-2.0.0/tests/core/test_models.py +521 -0
  67. heacalculator-2.0.0/tests/core/test_paper_validation.py +398 -0
  68. heacalculator-2.0.0/tests/core/test_thermodynamics.py +344 -0
  69. heacalculator-2.0.0/tests/data/conftest.py +26 -0
  70. heacalculator-2.0.0/tests/data/test_elements.py +145 -0
  71. heacalculator-2.0.0/tests/data/test_formation_enthalpy.py +32 -0
  72. heacalculator-2.0.0/tests/data/test_miedema_enthalpy.py +166 -0
  73. heacalculator-2.0.0/tests/data/test_mixing_enthalpy.py +38 -0
  74. heacalculator-2.0.0/tests/data/test_model_radii.py +32 -0
  75. heacalculator-2.0.0/tests/test_app.py +1349 -0
  76. heacalculator-2.0.0/tests/test_cli.py +468 -0
  77. heacalculator-2.0.0/tests/test_exceptions.py +84 -0
  78. heacalculator-2.0.0/tests/test_main.py +58 -0
  79. heacalculator-2.0.0/tests/test_utils.py +83 -0
  80. heacalculator-2.0.0/uv.lock +1841 -0
@@ -0,0 +1,26 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "uv"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "monthly"
7
+ assignees:
8
+ - "dogusariturk"
9
+ - package-ecosystem: "pip"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "monthly"
13
+ assignees:
14
+ - "dogusariturk"
15
+ - package-ecosystem: "github-actions"
16
+ directory: "/"
17
+ schedule:
18
+ interval: "monthly"
19
+ assignees:
20
+ - "dogusariturk"
21
+ - package-ecosystem: "pre-commit"
22
+ directory: "/"
23
+ schedule:
24
+ interval: "monthly"
25
+ assignees:
26
+ - "dogusariturk"
@@ -0,0 +1,36 @@
1
+ name: Build GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ paths:
7
+ - 'docs/**'
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: write
12
+ pages: write
13
+
14
+ jobs:
15
+ deploy-docs:
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - name: Checkout code
20
+ uses: actions/checkout@v6.0.2
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v6.2.0
24
+ with:
25
+ python-version: "3.14"
26
+
27
+ - name: Install uv
28
+ uses: astral-sh/setup-uv@v8.1.0
29
+ with:
30
+ enable-cache: true
31
+
32
+ - name: Install dependencies
33
+ run: uv sync --locked --all-extras
34
+
35
+ - name: Deploy documentation to GitHub Pages
36
+ run: uv run mkdocs gh-deploy --force
@@ -0,0 +1,34 @@
1
+ name: Lint
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ lint:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout code
16
+ uses: actions/checkout@v6.0.2
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v6.2.0
20
+ with:
21
+ python-version: '3.14'
22
+
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v8.1.0
25
+ with:
26
+ enable-cache: true
27
+
28
+ - name: Install dependencies
29
+ run: uv sync --all-extras
30
+
31
+ - name: Run prek
32
+ uses: j178/prek-action@v2.0.4
33
+ with:
34
+ prek-version: '0.3.8'
@@ -0,0 +1,43 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: ["published"]
6
+
7
+ jobs:
8
+ test:
9
+ uses: ./.github/workflows/tests.yml
10
+ secrets: inherit
11
+
12
+ release:
13
+ name: "Build and publish release"
14
+ needs: test
15
+ runs-on: ubuntu-latest
16
+ environment:
17
+ name: pypi
18
+ permissions:
19
+ id-token: write
20
+ contents: read
21
+
22
+ steps:
23
+ - name: Checkout code
24
+ uses: actions/checkout@v6.0.2
25
+
26
+ - name: Set up Python
27
+ uses: actions/setup-python@v6.2.0
28
+ with:
29
+ python-version: "3.14"
30
+
31
+ - name: Install uv
32
+ uses: astral-sh/setup-uv@v8.1.0
33
+ with:
34
+ enable-cache: true
35
+
36
+ - name: Install dependencies
37
+ run: uv sync --locked --all-extras --dev
38
+
39
+ - name: Build
40
+ run: uv build
41
+
42
+ - name: Publish
43
+ run: uv publish
@@ -0,0 +1,46 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [master]
6
+ pull_request:
7
+ branches: [master]
8
+ workflow_call:
9
+ workflow_dispatch:
10
+
11
+ jobs:
12
+ test:
13
+ name: Test (Python ${{ matrix.python-version }}, ${{ matrix.os }})
14
+ runs-on: ${{ matrix.os }}
15
+
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ os: [ubuntu-latest, windows-latest, macos-latest, macos-26-intel]
20
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
21
+
22
+ steps:
23
+ - name: Checkout code
24
+ uses: actions/checkout@v6.0.2
25
+
26
+ - name: Set up Python ${{ matrix.python-version }}
27
+ uses: actions/setup-python@v6.2.0
28
+ with:
29
+ python-version: ${{ matrix.python-version }}
30
+
31
+ - name: Install uv
32
+ uses: astral-sh/setup-uv@v8.1.0
33
+ with:
34
+ enable-cache: true
35
+
36
+ - name: Install EGL libraries (Linux only)
37
+ if: runner.os == 'Linux'
38
+ run: sudo apt-get install -y libegl1
39
+
40
+ - name: Install dependencies
41
+ run: uv sync --all-extras
42
+
43
+ - name: Run tests
44
+ env:
45
+ QT_QPA_PLATFORM: offscreen
46
+ run: uv run pytest tests/ -v
@@ -0,0 +1,127 @@
1
+ .idea/**
2
+ .idea/**/workspace.xml
3
+ .idea/**/tasks.xml
4
+ .idea/**/usage.statistics.xml
5
+ .idea/**/dictionaries
6
+ .idea/**/shelf
7
+ .idea/**/aws.xml
8
+ .idea/**/contentModel.xml
9
+ .idea/**/dataSources/
10
+ .idea/**/dataSources.ids
11
+ .idea/**/dataSources.local.xml
12
+ .idea/**/sqlDataSources.xml
13
+ .idea/**/dynamic.xml
14
+ .idea/**/uiDesigner.xml
15
+ .idea/**/dbnavigator.xml
16
+ .idea/**/gradle.xml
17
+ .idea/**/libraries
18
+ cmake-build-*/
19
+ .idea/**/mongoSettings.xml
20
+ *.iws
21
+ out/
22
+ .idea_modules/
23
+ atlassian-ide-plugin.xml
24
+ .idea/replstate.xml
25
+ .idea/sonarlint/
26
+ com_crashlytics_export_strings.xml
27
+ crashlytics.properties
28
+ crashlytics-build.properties
29
+ fabric.properties
30
+ .idea/httpRequests
31
+ .idea/caches/build_file_checksums.ser
32
+ .DS_Store
33
+ .AppleDouble
34
+ .LSOverride
35
+ Icon
36
+ ._*
37
+ .DocumentRevisions-V100
38
+ .fseventsd
39
+ .Spotlight-V100
40
+ .TemporaryItems
41
+ .Trashes
42
+ .VolumeIcon.icns
43
+ .com.apple.timemachine.donotpresent
44
+ .AppleDB
45
+ .AppleDesktop
46
+ Network Trash Folder
47
+ Temporary Items
48
+ .apdisk
49
+ __pycache__/
50
+ *.py[cod]
51
+ *$py.class
52
+ *.so
53
+ .Python
54
+ build/
55
+ develop-eggs/
56
+ dist/
57
+ downloads/
58
+ eggs/
59
+ .eggs/
60
+ lib/
61
+ lib64/
62
+ parts/
63
+ sdist/
64
+ var/
65
+ wheels/
66
+ share/python-wheels/
67
+ *.egg-info/
68
+ .installed.cfg
69
+ *.egg
70
+ MANIFEST
71
+ *.manifest
72
+ *.spec
73
+ pip-log.txt
74
+ pip-delete-this-directory.txt
75
+ htmlcov/
76
+ .tox/
77
+ .nox/
78
+ .coverage
79
+ .coverage.*
80
+ .cache
81
+ nosetests.xml
82
+ coverage.xml
83
+ *.cover
84
+ *.py,cover
85
+ .hypothesis/
86
+ .pytest_cache/
87
+ cover/
88
+ *.mo
89
+ *.pot
90
+ *.log
91
+ local_settings.py
92
+ db.sqlite3
93
+ db.sqlite3-journal
94
+ instance/
95
+ .webassets-cache
96
+ .scrapy
97
+ docs/_build/
98
+ .pybuilder/
99
+ target/
100
+ .ipynb_checkpoints
101
+ profile_default/
102
+ ipython_config.py
103
+ .pdm.toml
104
+ .pdm-python
105
+ .pdm-build/
106
+ __pypackages__/
107
+ celerybeat-schedule
108
+ celerybeat.pid
109
+ *.sage.py
110
+ .env
111
+ .venv
112
+ env/
113
+ venv/
114
+ ENV/
115
+ env.bak/
116
+ venv.bak/
117
+ .spyderproject
118
+ .spyproject
119
+ .ropeproject
120
+ /site
121
+ .mypy_cache/
122
+ .dmypy.json
123
+ dmypy.json
124
+ .pyre/
125
+ .pytype/
126
+ cython_debug/
127
+ .python-version
@@ -0,0 +1,35 @@
1
+ repos:
2
+
3
+ - repo: https://github.com/astral-sh/uv-pre-commit
4
+ rev: 0.11.18
5
+ hooks:
6
+ - id: uv-lock
7
+
8
+ - repo: https://github.com/astral-sh/ruff-pre-commit
9
+ rev: v0.15.15
10
+ hooks:
11
+ - id: ruff-check
12
+ args: [ "--fix" ]
13
+ - id: ruff-format
14
+
15
+ # ty official pre-commit hook not yet released by Astral (tracked in astral-sh/ty#269).
16
+ # Using local uvx hook as the safest option:
17
+ - repo: local
18
+ hooks:
19
+ - id: ty
20
+ name: ty type check
21
+ language: system
22
+ entry: uvx ty check
23
+ types_or: [python, pyi]
24
+ pass_filenames: false
25
+
26
+ - repo: https://github.com/pre-commit/pre-commit-hooks
27
+ rev: v6.0.0
28
+ hooks:
29
+ - id: trailing-whitespace
30
+ - id: end-of-file-fixer
31
+ - id: check-case-conflict
32
+ - id: mixed-line-ending
33
+ - id: check-yaml
34
+ - id: check-toml
35
+ - id: check-merge-conflict
@@ -0,0 +1,15 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below."
3
+ title: HEACalculator
4
+ version: 2.0.0
5
+ date-released: "2026-06-02"
6
+ license: GPL-3.0-or-later
7
+ repository-code: "https://github.com/dogusariturk/HEACalculator"
8
+ doi: 10.5281/zenodo.3590318
9
+ url: "https://doi.org/10.5281/zenodo.3590318"
10
+ abstract: "A Python tool for calculating phenomenological parameters to predict solid solution formation in High Entropy Alloys (HEAs). Provides both a CLI and GUI interface."
11
+ authors:
12
+ - family-names: "Sarıtürk"
13
+ given-names: "Doğuhan"
14
+ email: dogu.sariturk@gmail.com
15
+ orcid: "https://orcid.org/0000-0003-0008-1165"
Binary file