weac 3.0.0__tar.gz → 3.0.2__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 (71) hide show
  1. {weac-3.0.0 → weac-3.0.2}/CITATION.cff +1 -1
  2. weac-3.0.2/LICENSE +21 -0
  3. weac-3.0.2/MANIFEST.in +7 -0
  4. {weac-3.0.0/weac.egg-info → weac-3.0.2}/PKG-INFO +107 -10
  5. {weac-3.0.0 → weac-3.0.2}/README.md +101 -6
  6. {weac-3.0.0 → weac-3.0.2}/pyproject.toml +13 -14
  7. {weac-3.0.0 → weac-3.0.2/src}/weac/__init__.py +1 -1
  8. weac-3.0.2/src/weac/analysis/__init__.py +23 -0
  9. weac-3.0.2/src/weac/analysis/analyzer.py +790 -0
  10. weac-3.0.2/src/weac/analysis/criteria_evaluator.py +1172 -0
  11. weac-3.0.2/src/weac/analysis/plotter.py +1925 -0
  12. weac-3.0.2/src/weac/components/__init__.py +21 -0
  13. weac-3.0.2/src/weac/components/config.py +33 -0
  14. weac-3.0.2/src/weac/components/criteria_config.py +86 -0
  15. weac-3.0.2/src/weac/components/layer.py +284 -0
  16. weac-3.0.2/src/weac/components/model_input.py +102 -0
  17. weac-3.0.2/src/weac/components/scenario_config.py +72 -0
  18. weac-3.0.2/src/weac/components/segment.py +31 -0
  19. weac-3.0.2/src/weac/core/__init__.py +10 -0
  20. weac-3.0.2/src/weac/core/eigensystem.py +405 -0
  21. weac-3.0.2/src/weac/core/field_quantities.py +273 -0
  22. weac-3.0.2/src/weac/core/scenario.py +200 -0
  23. weac-3.0.2/src/weac/core/slab.py +147 -0
  24. weac-3.0.2/src/weac/core/slab_touchdown.py +363 -0
  25. weac-3.0.2/src/weac/core/system_model.py +412 -0
  26. weac-3.0.2/src/weac/core/unknown_constants_solver.py +441 -0
  27. {weac-3.0.0 → weac-3.0.2/src}/weac/logging_config.py +1 -2
  28. weac-3.0.2/src/weac/utils/__init__.py +0 -0
  29. weac-3.0.2/src/weac/utils/geldsetzer.py +166 -0
  30. weac-3.0.2/src/weac/utils/misc.py +127 -0
  31. weac-3.0.2/src/weac/utils/snow_types.py +82 -0
  32. weac-3.0.2/src/weac/utils/snowpilot_parser.py +331 -0
  33. {weac-3.0.0 → weac-3.0.2/src/weac.egg-info}/PKG-INFO +107 -10
  34. weac-3.0.2/src/weac.egg-info/SOURCES.txt +66 -0
  35. {weac-3.0.0 → weac-3.0.2/src}/weac.egg-info/requires.txt +5 -1
  36. weac-3.0.2/tests/__init__.py +0 -0
  37. weac-3.0.2/tests/analysis/__init__.py +0 -0
  38. weac-3.0.2/tests/analysis/test_analyzer.py +137 -0
  39. weac-3.0.2/tests/analysis/test_criteria_evaluator.py +229 -0
  40. weac-3.0.2/tests/components/__init__.py +0 -0
  41. weac-3.0.2/tests/components/test_configs.py +273 -0
  42. weac-3.0.2/tests/components/test_layer.py +221 -0
  43. weac-3.0.2/tests/core/__init__.py +0 -0
  44. weac-3.0.2/tests/core/test_eigensystem.py +368 -0
  45. weac-3.0.2/tests/core/test_field_quantities.py +460 -0
  46. weac-3.0.2/tests/core/test_scenario.py +144 -0
  47. weac-3.0.2/tests/core/test_slab.py +286 -0
  48. weac-3.0.2/tests/core/test_slab_touchdown.py +263 -0
  49. weac-3.0.2/tests/core/test_system_model.py +416 -0
  50. weac-3.0.2/tests/run_tests.py +66 -0
  51. {weac-3.0.0 → weac-3.0.2}/tests/test_regression_simulation.py +3 -3
  52. weac-3.0.2/tests/utils/__init__.py +0 -0
  53. weac-3.0.2/tests/utils/json_helpers.py +14 -0
  54. weac-3.0.2/tests/utils/test_json_helpers.py +92 -0
  55. weac-3.0.2/tests/utils/test_misc.py +332 -0
  56. weac-3.0.2/tests/utils/test_snowpilot_parser.py +200 -0
  57. weac-3.0.2/tests/utils/weac_reference_runner.py +379 -0
  58. weac-3.0.0/LICENSE +0 -24
  59. weac-3.0.0/MANIFEST.in +0 -2
  60. weac-3.0.0/weac.egg-info/SOURCES.txt +0 -21
  61. {weac-3.0.0 → weac-3.0.2}/img/bc.png +0 -0
  62. {weac-3.0.0 → weac-3.0.2}/img/layering.png +0 -0
  63. {weac-3.0.0 → weac-3.0.2}/img/logo.png +0 -0
  64. {weac-3.0.0 → weac-3.0.2}/img/model.png +0 -0
  65. {weac-3.0.0 → weac-3.0.2}/img/profiles.png +0 -0
  66. {weac-3.0.0 → weac-3.0.2}/img/systems.png +0 -0
  67. {weac-3.0.0 → weac-3.0.2}/setup.cfg +0 -0
  68. {weac-3.0.0 → weac-3.0.2/src}/weac/constants.py +0 -0
  69. {weac-3.0.0 → weac-3.0.2/src}/weac.egg-info/dependency_links.txt +0 -0
  70. {weac-3.0.0 → weac-3.0.2/src}/weac.egg-info/top_level.txt +0 -0
  71. {weac-3.0.0 → weac-3.0.2}/tests/test_comparison_results.py +0 -0
@@ -8,7 +8,7 @@ authors:
8
8
  - family-names: "Weissgraeber"
9
9
  given-names: "Philipp"
10
10
  orcid: "https://orcid.org/0000-0001-8320-8672"
11
- version: 3.0.0
11
+ version: 3.0.2
12
12
  date-released: 2021-12-30
13
13
  identifiers:
14
14
  - description: Collection of archived snapshots of all versions of WEAC
weac-3.0.2/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 2phi GbR and contributors
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.
weac-3.0.2/MANIFEST.in ADDED
@@ -0,0 +1,7 @@
1
+ # Include the CITATION.cff / img / test suite in the sdist
2
+ include CITATION.cff
3
+ include img/*.png
4
+ recursive-include tests *.py
5
+
6
+ # Exclude the docs directory from the sdist
7
+ prune docs
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weac
3
- Version: 3.0.0
3
+ Version: 3.0.2
4
4
  Summary: Weak layer anticrack nucleation model
5
5
  Author-email: 2phi GbR <mail@2phi.de>
6
- License: Proprietary
6
+ License-Expression: MIT
7
7
  Project-URL: Homepage, https://github.com/2phi/weac
8
8
  Project-URL: Demo, https://github.com/2phi/weac/blob/main/demo/demo.ipynb
9
9
  Project-URL: Documentation, https://2phi.github.io/weac
@@ -11,7 +11,6 @@ Project-URL: Issues and feature requests, https://github.com/2phi/weac/issues
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
- Classifier: License :: Other/Proprietary License
15
14
  Classifier: Operating System :: OS Independent
16
15
  Classifier: Topic :: Scientific/Engineering
17
16
  Requires-Python: >=3.12
@@ -36,6 +35,9 @@ Requires-Dist: traitlets>=5.14.3; extra == "interactive"
36
35
  Provides-Extra: docs
37
36
  Requires-Dist: sphinx; extra == "docs"
38
37
  Requires-Dist: sphinxawesome-theme; extra == "docs"
38
+ Provides-Extra: build
39
+ Requires-Dist: build; extra == "build"
40
+ Requires-Dist: twine; extra == "build"
39
41
  Provides-Extra: dev
40
42
  Requires-Dist: nbclient>=0.10.0; extra == "dev"
41
43
  Requires-Dist: nbconvert>=7.16.4; extra == "dev"
@@ -55,7 +57,7 @@ Requires-Dist: pylint>=3.2.0; extra == "dev"
55
57
  Requires-Dist: pycodestyle>=2.11.1; extra == "dev"
56
58
  Requires-Dist: black>=24.4.0; extra == "dev"
57
59
  Requires-Dist: isort>=5.13.0; extra == "dev"
58
- Requires-Dist: bump2version>=1.0.1; extra == "dev"
60
+ Requires-Dist: bump-my-version; extra == "dev"
59
61
  Dynamic: license-file
60
62
 
61
63
  <!-- LOGO AND TITLE-->
@@ -128,12 +130,13 @@ Dynamic: license-file
128
130
 
129
131
  1. [About the project](#about-the-project)
130
132
  2. [Installation](#installation)
131
- 3. [Usage](#usage)
132
- 4. [Roadmap](#roadmap)
133
- 5. [Release history](#release-history)
134
- 6. [How to contribute](#how-to-contribute)
135
- 7. [License](#license)
136
- 8. [Contact](#contact)
133
+ 3. [Development Setup](#development-setup)
134
+ 4. [Usage](#usage)
135
+ 5. [Roadmap](#roadmap)
136
+ 6. [Release history](#release-history)
137
+ 7. [How to contribute](#how-to-contribute)
138
+ 8. [License](#license)
139
+ 9. [Contact](#contact)
137
140
 
138
141
  <!-- ABOUT THE PROJECT -->
139
142
  ## About the project
@@ -189,6 +192,100 @@ Needs (runtime dependencies are declared in [pyproject.toml](https://github.com/
189
192
  - [Snowpylot](https://github.com/connellymk/snowpylot) ≥ 1.1.3
190
193
 
191
194
 
195
+ <!-- DEVELOPMENT SETUP -->
196
+ ## Development Setup
197
+
198
+ This project uses [uv](https://github.com/astral-sh/uv) for fast Python package management and project handling.
199
+
200
+ ### Installing uv
201
+
202
+ Install uv following the [official installation guide](https://github.com/astral-sh/uv#installation):
203
+
204
+ ```bash
205
+ # On macOS and Linux
206
+ curl -LsSf https://astral.sh/uv/install.sh | sh
207
+
208
+ # Using pip (alternative)
209
+ pip install uv
210
+ ```
211
+
212
+ ### Setting up the development environment
213
+
214
+ Clone the repository and set up the development environment:
215
+
216
+ ```bash
217
+ git clone https://github.com/2phi/weac
218
+ cd weac
219
+
220
+ # Install Python 3.12+ if not already available
221
+ # uv will automatically use the version specified in .python-version
222
+
223
+ # For basic setup (if only running the package):
224
+ uv sync
225
+
226
+ # For development (recommended for contributors):
227
+ uv sync --extra dev
228
+
229
+ # Activate the virtual environment
230
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
231
+ ```
232
+
233
+ ### Running tests
234
+
235
+ Run the test suite using uv:
236
+
237
+ ```bash
238
+ # Run all tests
239
+ uv run python tests/run_tests.py
240
+
241
+ # Or use pytest directly (if installed)
242
+ uv run pytest
243
+ ```
244
+
245
+ ### Code formatting and linting
246
+
247
+ This project uses [ruff](https://github.com/astral-sh/ruff) for fast Python linting and formatting:
248
+
249
+ ```bash
250
+ # Format code
251
+ uv run ruff format .
252
+
253
+ # Check for linting issues
254
+ uv run ruff check .
255
+
256
+ # Fix auto-fixable linting issues
257
+ uv run ruff check . --fix
258
+ ```
259
+
260
+ ### Building the package
261
+
262
+ Build the package for distribution:
263
+
264
+ ```bash
265
+ # Build wheel and source distribution
266
+ uv build
267
+
268
+ # Install in editable mode for development
269
+ uv pip install -e .
270
+ ```
271
+
272
+ ### Additional uv commands
273
+
274
+ ```bash
275
+ # Update dependencies
276
+ uv sync --upgrade
277
+
278
+ # Add a new dependency
279
+ uv add package-name
280
+
281
+ # Add a development dependency
282
+ uv add --dev package-name
283
+
284
+ # Show environment info
285
+ uv run python --version
286
+ uv run pip list
287
+ ```
288
+
192
289
  <!-- USAGE EXAMPLES -->
193
290
  ## Usage
194
291
 
@@ -68,12 +68,13 @@
68
68
 
69
69
  1. [About the project](#about-the-project)
70
70
  2. [Installation](#installation)
71
- 3. [Usage](#usage)
72
- 4. [Roadmap](#roadmap)
73
- 5. [Release history](#release-history)
74
- 6. [How to contribute](#how-to-contribute)
75
- 7. [License](#license)
76
- 8. [Contact](#contact)
71
+ 3. [Development Setup](#development-setup)
72
+ 4. [Usage](#usage)
73
+ 5. [Roadmap](#roadmap)
74
+ 6. [Release history](#release-history)
75
+ 7. [How to contribute](#how-to-contribute)
76
+ 8. [License](#license)
77
+ 9. [Contact](#contact)
77
78
 
78
79
  <!-- ABOUT THE PROJECT -->
79
80
  ## About the project
@@ -129,6 +130,100 @@ Needs (runtime dependencies are declared in [pyproject.toml](https://github.com/
129
130
  - [Snowpylot](https://github.com/connellymk/snowpylot) ≥ 1.1.3
130
131
 
131
132
 
133
+ <!-- DEVELOPMENT SETUP -->
134
+ ## Development Setup
135
+
136
+ This project uses [uv](https://github.com/astral-sh/uv) for fast Python package management and project handling.
137
+
138
+ ### Installing uv
139
+
140
+ Install uv following the [official installation guide](https://github.com/astral-sh/uv#installation):
141
+
142
+ ```bash
143
+ # On macOS and Linux
144
+ curl -LsSf https://astral.sh/uv/install.sh | sh
145
+
146
+ # Using pip (alternative)
147
+ pip install uv
148
+ ```
149
+
150
+ ### Setting up the development environment
151
+
152
+ Clone the repository and set up the development environment:
153
+
154
+ ```bash
155
+ git clone https://github.com/2phi/weac
156
+ cd weac
157
+
158
+ # Install Python 3.12+ if not already available
159
+ # uv will automatically use the version specified in .python-version
160
+
161
+ # For basic setup (if only running the package):
162
+ uv sync
163
+
164
+ # For development (recommended for contributors):
165
+ uv sync --extra dev
166
+
167
+ # Activate the virtual environment
168
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
169
+ ```
170
+
171
+ ### Running tests
172
+
173
+ Run the test suite using uv:
174
+
175
+ ```bash
176
+ # Run all tests
177
+ uv run python tests/run_tests.py
178
+
179
+ # Or use pytest directly (if installed)
180
+ uv run pytest
181
+ ```
182
+
183
+ ### Code formatting and linting
184
+
185
+ This project uses [ruff](https://github.com/astral-sh/ruff) for fast Python linting and formatting:
186
+
187
+ ```bash
188
+ # Format code
189
+ uv run ruff format .
190
+
191
+ # Check for linting issues
192
+ uv run ruff check .
193
+
194
+ # Fix auto-fixable linting issues
195
+ uv run ruff check . --fix
196
+ ```
197
+
198
+ ### Building the package
199
+
200
+ Build the package for distribution:
201
+
202
+ ```bash
203
+ # Build wheel and source distribution
204
+ uv build
205
+
206
+ # Install in editable mode for development
207
+ uv pip install -e .
208
+ ```
209
+
210
+ ### Additional uv commands
211
+
212
+ ```bash
213
+ # Update dependencies
214
+ uv sync --upgrade
215
+
216
+ # Add a new dependency
217
+ uv add package-name
218
+
219
+ # Add a development dependency
220
+ uv add --dev package-name
221
+
222
+ # Show environment info
223
+ uv run python --version
224
+ uv run pip list
225
+ ```
226
+
132
227
  <!-- USAGE EXAMPLES -->
133
228
  ## Usage
134
229
 
@@ -4,19 +4,17 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "weac"
7
- version = "3.0.0"
8
- authors = [
9
- {name = "2phi GbR", email = "mail@2phi.de"},
10
- ]
7
+ version = "3.0.2"
8
+ authors = [{ name = "2phi GbR", email = "mail@2phi.de" }]
11
9
  description = "Weak layer anticrack nucleation model"
12
10
  readme = "README.md"
13
11
  requires-python = ">=3.12"
14
- license = { text = "Proprietary" }
12
+ license = "MIT"
13
+ license-files = ["LICENSE*"]
15
14
  classifiers = [
16
15
  "Programming Language :: Python :: 3",
17
16
  "Programming Language :: Python :: 3.12",
18
17
  "Programming Language :: Python :: 3.13",
19
- "License :: Other/Proprietary License",
20
18
  "Operating System :: OS Independent",
21
19
  "Topic :: Scientific/Engineering",
22
20
  ]
@@ -48,6 +46,7 @@ interactive = [
48
46
  "traitlets>=5.14.3",
49
47
  ]
50
48
  docs = ["sphinx", "sphinxawesome-theme"]
49
+ build = ["build", "twine"]
51
50
  dev = [
52
51
  # Notebook execution (to run demo.ipynb non-interactively)
53
52
  "nbclient>=0.10.0",
@@ -74,12 +73,14 @@ dev = [
74
73
  "isort>=5.13.0",
75
74
 
76
75
  # Versioning helper matching [tool.bumpversion]
77
- "bump2version>=1.0.1",
76
+ "bump-my-version", # e.g. bump-my-version bump patch
78
77
  ]
79
78
 
80
79
  [tool.setuptools]
81
- packages = ["weac"]
82
- package-data = { "*" = ["CITATION.cff"], "img" = ["*.png"] }
80
+ package-dir = { "" = "src" }
81
+
82
+ [tool.setuptools.packages.find]
83
+ where = ["src"]
83
84
 
84
85
  [tool.ruff.lint]
85
86
  ignore = ["E741"]
@@ -122,9 +123,7 @@ ignore = [
122
123
  ]
123
124
 
124
125
  [tool.bumpversion]
125
- current_version = "3.0.0"
126
- tag = true
127
- commit = true
126
+ current_version = "3.0.2"
128
127
 
129
128
  [[tool.bumpversion.files]]
130
129
  filename = "pyproject.toml"
@@ -133,9 +132,9 @@ filename = "pyproject.toml"
133
132
  filename = "CITATION.cff"
134
133
 
135
134
  [[tool.bumpversion.files]]
136
- filename = "weac/__init__.py"
135
+ filename = "src/weac/__init__.py"
137
136
  search = "__version__ = \"{current_version}\""
138
137
  replace = "__version__ = \"{new_version}\""
139
138
 
140
139
  [[tool.bumpversion.files]]
141
- filename = "demo/demo.ipynb"
140
+ filename = "demo/demo.ipynb"
@@ -2,4 +2,4 @@
2
2
  WEAC - Weak Layer Anticrack Nucleation Model
3
3
  """
4
4
 
5
- __version__ = "3.0.0"
5
+ __version__ = "3.0.2"
@@ -0,0 +1,23 @@
1
+ """
2
+ This package contains modules for analyzing the results of the WEAC model.
3
+ """
4
+
5
+ from .analyzer import Analyzer
6
+ from .criteria_evaluator import (
7
+ CoupledCriterionHistory,
8
+ CoupledCriterionResult,
9
+ CriteriaEvaluator,
10
+ FindMinimumForceResult,
11
+ SSERRResult,
12
+ )
13
+ from .plotter import Plotter
14
+
15
+ __all__ = [
16
+ "Analyzer",
17
+ "CriteriaEvaluator",
18
+ "CoupledCriterionHistory",
19
+ "CoupledCriterionResult",
20
+ "FindMinimumForceResult",
21
+ "SSERRResult",
22
+ "Plotter",
23
+ ]