From 1d3b5dd284957ec03b7c4bb112c50948dc6dbdac Mon Sep 17 00:00:00 2001 From: Vybornak2 Date: Fri, 20 Mar 2026 11:58:43 +0100 Subject: [PATCH 1/4] Settings updated - pytest adopts - removed ruff, mypy for redundancy - dev dependencies (depricated) moved to dependency-groups - added scipy dependency - updated .vscode settings - updated requirements.txt, dev version --- .vscode/extensions.json | 5 +---- .vscode/settings.json | 9 +-------- pyproject.toml | 36 ++++++++++++++++-------------------- requirements-dev.txt | Bin 284 -> 404 bytes requirements.txt | 8 ++++---- 5 files changed, 22 insertions(+), 36 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 1ce9e98..d71dfc5 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,13 +4,10 @@ "ms-python.vscode-pylance", "charliermarsh.ruff", "ms-toolsai.jupyter", - "github.copilot", "tamasfe.even-better-toml", "aaron-bond.better-comments", - "github.vscode-github-actions", "bierner.markdown-mermaid", - "alexcvzz.vscode-sqlite", "njpwerner.autodocstring", "redhat.vscode-yaml", ] -} +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 826180c..3c6f9ff 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,21 +1,14 @@ { // Python settings "python.analysis.autoSearchPaths": true, - "python.analysis.diagnosticSeverityOverrides": { - "reportMissingImports": "none" - }, "python.analysis.extraPaths": [ "${workspaceFolder}/src" ], - "python.envFile": "${workspaceFolder}/.env", "python.terminal.activateEnvironment": true, "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python", // Test settings "python.testing.pytestEnabled": true, "python.testing.unittestEnabled": false, - "python.testing.cwd": "${workspaceFolder}/tests", - "python.testing.pytestPath": "${workspaceFolder}/.venv/bin/pytest", - "python.testing.autoTestDiscoverOnSaveEnabled": true, "iis.configDir": "", // AutoDocstring settings "autoDocstring.docstringFormat": "google", @@ -32,4 +25,4 @@ "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format", "tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping" ] -} +} \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index beecc56..843536b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "Python implementations of various fatigue life algorithms" readme = "README.md" requires-python = ">=3.12" license = { text = "MIT" } -authors = [{ name = "Jan Vyborny", email = "jan.vyborny2@gmail.com" }] +authors = [{ name = "FaberOrg", email = "jan.vyborny2@gmail.com" }] classifiers = [ "Development Status :: 3 - Alpha", @@ -18,10 +18,10 @@ classifiers = [ ] dependencies = [ - "matplotlib>=3.10.6", - "numpy>=2.3.3", - "pandas>=2.3.2", - # "scipy>=1.15.1", + "matplotlib>=3.10.8", + "numpy>=2.4.3", + "pandas>=3.0.1", + "scipy>=1.17.1", ] [project.urls] @@ -31,20 +31,18 @@ dependencies = [ "FABER" = "https://faber-cost.eu/" "LinkedIn" = "https://www.linkedin.com/company/faber-cost/about/" -[tool.uv] -dev-dependencies = [ - "mypy>=1.18.2", - "ruff>=0.13.1", - "pre-commit>=4.3.0", - "pytest>=8.4.2", +[dependency-groups] +dev = [ + "mypy>=1.19.1", + "ruff>=0.15.7", + "pre-commit>=4.5.1", + "pytest>=9.0.2", "pytest-cov>=7.0.0", "pytest-mock>=3.15.1", - "pytest-mypy>=1.0.1", - "pytest-ruff>=0.5", "mkdocs>=1.6.1", - "mkdocs-material[imaging]>=9.6.20", - "mkdocstrings[python]>=0.30.1", - "mkdocs-autorefs>=1.4.3", + "mkdocs-material[imaging]>=9.7.6", + "mkdocstrings[python]>=1.0.3", + "mkdocs-autorefs>=1.4.4", ] [tool.pytest.ini_options] @@ -52,10 +50,8 @@ pythonpath = ["src"] testpaths = ["tests"] minversion = "6.0" addopts = [ - "-rfEP", # show failures, errors, and passed with output - "-vv", # verbose output - "--ruff", # run ruff on all tests - "--mypy", # run mypy on all tests + "-rfEP", # show failures, errors, and passed with output + "-vv", # verbose output # "--no-header", # do not show header # "-s", # do not capture output diff --git a/requirements-dev.txt b/requirements-dev.txt index 7bbc546002cd0c09a23ba975b7b3dce05f513b1e..13e1e35a80a187b9fa8621b1caa34080150f7f4d 100644 GIT binary patch literal 404 zcmZut+X{kE5S-_rPcbx2>7jlkdJwY<=3.10.0 -numpy>=2.2.2 -pandas>=2.2.3 -scipy>=1.15.1 +matplotlib>=3.10.8 +numpy>=2.4.3 +pandas>=3.0.1 +scipy>=1.17.1 \ No newline at end of file From 7e0ff5a024c5bb8990339f255915528a326fc181 Mon Sep 17 00:00:00 2001 From: Vybornak2 Date: Fri, 20 Mar 2026 12:30:18 +0100 Subject: [PATCH 2/4] planned implementation template updated --- .../ISSUE_TEMPLATE/planned_implementation.md | 194 ++++++++++++------ 1 file changed, 134 insertions(+), 60 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/planned_implementation.md b/.github/ISSUE_TEMPLATE/planned_implementation.md index 7067eb0..59dfc78 100644 --- a/.github/ISSUE_TEMPLATE/planned_implementation.md +++ b/.github/ISSUE_TEMPLATE/planned_implementation.md @@ -2,26 +2,33 @@ name: Planned Implementation about: Document a planned feature implementation for the project roadmap title: '[IMPL] ' -labels: 'planned-implementation' +labels: 'planned-implementation', 'WIP' assignees: '' --- + +MANDATORY blocks must be completed. +OPTIONAL blocks are provided inside HTML comments: `< !--`, `-- >` + remove comment markers to enable -## â„šī¸ General Information +IMPORTANT: +Function docstrings are our documentation source of truth, so all relevant information should be included there. + +Any important information captured in the issue should be reflected in the function signature, docstring, and/or test cases to ensure it is not lost during implementation. +--> - +## â„šī¸ General Information -**Component Name:** + -**Component Location:** +**Component Name:** some_name -**Suggested Python Name:** +**Component Location:** src/FatPy/some_params.py -**FABER WG Relation:** +**Suggested Python Name:** calc_some_param -**Brief Description:** +**FABER WG Relation:** WG6.1 **Priority:** (1-10 scale) @@ -29,90 +36,157 @@ assignees: '' **Estimated Effort:** (1-10 scale) -**Dependencies:** +**Dependencies:** -- -- +**Related Issues:** --- -## Implementation Details + +## 📋 Problem Description + +Problem description goes here. -### 📋 Specification +### Mathematical Formulation -#### Mathematical Formulation +$\text{Simple mathematical formulation here}$ + +$$ +\text{Or more complex} \\ +\text{mathematical formulation here} +$$ + +**Latex text:** + +```plaintext +$\text{Simple mathematical formulation here}$ + +$$ +\text{Or more complex} \\ +\text{mathematical formulation here} +$$ +``` -#### Inputs - -| Parameter | Symbol | Type | Description | Units | Constraints | -|-----------|--------|------|-------------|-------|-------------| -| | | | | | | -| | | | | | | + +## 🔧 Implementation Guideline -#### Outputs - -| Parameter | Symbol | Type | Description | Units | Range | -|-----------|--------|------|-------------|-------|-------| -| | | | | | | -| | | | | | | -#### Expected Behavior - + -#### Function Signature +### Function Signature + + ```python -# Suggested function signature -def function_name(): - pass +import numpy as np +from numpy.typing import ArrayLike, Optional, NDArray + +def function_name( + input1: ArrayLike, + input2: Optional[ArrayLike] = None, + param1: float = 0.5, + param2: int = 10 +) -> NDArray[np.float64]: + """Brief description of the function. + + Some more detailed description of the function's purpose and behavior. + + Args: + input1: Description of the first input. + input2: Description of the second input (optional). + param1: Description of the first parameter (default is 0.5). + param2: Description of the second parameter (default is 10). + + Returns: + Description of the output. + + Raises: + ValueError: Description of when this error is raised. + TypeError: Description of when this error is raised. + """ + pass # Implementation goes here ``` -#### Code Structure + +| Parameter | Symbol | Type | Description | Units | Constraints | +|-----------|--------|------|-------------|-------|-------------| +| | | | | | | -#### Error Handling +--> - -### ✅ Validation & Testing + +--> -| Test Case | Inputs | Expected Outputs | Notes | -|-----------|--------|------------------|-------| -| Example 1 | | | | -| Example 2 | | | | + + +--> -### 📝 Technical Notes + +## ✅ Validation & Testing - +#### Test Cases -#### Performance Considerations + -- +| Test Case | Inputs | Expected Outputs | Notes | +|-----------|--------|------------------|-------| +| Example 1 | | | | +| Example 2 | | | | -#### Edge Cases to Handle +### Acceptance Criteria + +- [ ] Implementation meets all specified requirements +- [ ] Code is well-documented and follows style guidelines +- [ ] All test cases pass successfully + -- + +## 📚 References & Resources -#### Special Requirements + + +- [Reference 1](https://example.com) -- From 5c3a939c53a88ae59aaf23f22115ee8140216e8f Mon Sep 17 00:00:00 2001 From: Vybornak2 Date: Wed, 25 Mar 2026 08:48:01 +0100 Subject: [PATCH 3/4] renamed template --- .../{planned_implementation.md => planned_feature_request.md} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/ISSUE_TEMPLATE/{planned_implementation.md => planned_feature_request.md} (98%) diff --git a/.github/ISSUE_TEMPLATE/planned_implementation.md b/.github/ISSUE_TEMPLATE/planned_feature_request.md similarity index 98% rename from .github/ISSUE_TEMPLATE/planned_implementation.md rename to .github/ISSUE_TEMPLATE/planned_feature_request.md index 59dfc78..6147d7a 100644 --- a/.github/ISSUE_TEMPLATE/planned_implementation.md +++ b/.github/ISSUE_TEMPLATE/planned_feature_request.md @@ -1,8 +1,8 @@ --- name: Planned Implementation about: Document a planned feature implementation for the project roadmap -title: '[IMPL] ' -labels: 'planned-implementation', 'WIP' +title: '' +labels: 'feature', 'WIP', `backlog` assignees: '' --- From fe221b3b3a5fd2715d3638ed9d8c30acb6dc728d Mon Sep 17 00:00:00 2001 From: Vybornak2 Date: Wed, 25 Mar 2026 08:50:43 +0100 Subject: [PATCH 4/4] removed `feature` label --- .github/ISSUE_TEMPLATE/planned_feature_request.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/planned_feature_request.md b/.github/ISSUE_TEMPLATE/planned_feature_request.md index 6147d7a..4617b5a 100644 --- a/.github/ISSUE_TEMPLATE/planned_feature_request.md +++ b/.github/ISSUE_TEMPLATE/planned_feature_request.md @@ -2,7 +2,7 @@ name: Planned Implementation about: Document a planned feature implementation for the project roadmap title: '' -labels: 'feature', 'WIP', `backlog` +labels: 'WIP', `backlog` assignees: '' ---