Skip to content

Commit 90c8236

Browse files
authored
Merge branch 'main' into ci/revert-temporary-doc-build-fix
2 parents 041f68a + 37233eb commit 90c8236

File tree

458 files changed

+12803
-26379
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

458 files changed

+12803
-26379
lines changed

.github/labeler.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,9 @@ testing:
2020
- "tests/system/conftest.py"
2121
- "tests/system/solvers/conftest.py"
2222
- "tests/system/general/conftest.py"
23+
24+
extensions:
25+
- changed-fles:
26+
- any-glob-to-any-file:
27+
- "src/ansys/aedt/core/extensions/**/*"
28+
- "doc/source/Resources/pyaedt_installer_from_aedt.py"

.github/labels.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,7 @@
3737
- name: security
3838
description: Anything related to security advisories
3939
color: FF0000
40+
41+
- name: extensions
42+
description: Related to extensions
43+
color: 6905d2

.github/workflows/ci_cd.yml

Lines changed: 281 additions & 34 deletions
Large diffs are not rendered by default.

.github/workflows/label.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ concurrency:
1515
group: ${{ github.workflow }}-${{ github.ref }}
1616
cancel-in-progress: true
1717

18+
permissions: {} # Disable default permissions
19+
1820
jobs:
1921

2022
label-syncer:
2123
name: Syncer
2224
runs-on: ubuntu-latest
2325
steps:
2426
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
27+
with:
28+
persist-credentials: false
2529
- uses: micnncim/action-label-syncer@3abd5ab72fda571e69fffd97bd4e0033dd5f495c # v1.3.0
2630
env:
2731
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -75,14 +79,22 @@ jobs:
7579
with:
7680
labels: testing
7781

82+
- uses: actions-ecosystem/action-add-labels@18f1af5e3544586314bbe15c0273249c770b2daf # v1.1.3
83+
if: |
84+
contains(github.event.pull_request.title, 'extension') ||
85+
contains(github.event.pull_request.title, 'extensions')
86+
with:
87+
labels: extensions
88+
7889
commenter:
90+
name: Suggest labels if none assigned
7991
runs-on: ubuntu-latest
8092
permissions:
8193
contents: read
8294
pull-requests: write
8395
steps:
8496
- name: Suggest to add labels
85-
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
97+
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
8698
# Execute only when no labels have been applied to the pull request
8799
if: toJSON(github.event.pull_request.labels.*.name) == '{}'
88100
with:
@@ -105,7 +117,7 @@ jobs:
105117
pull-requests: write
106118
runs-on: ubuntu-latest
107119
steps:
108-
- uses: ansys/actions/doc-changelog@e0de7dd89b2a4c100f74327666d5521cfda17950 # v10.1.1
120+
- uses: ansys/actions/doc-changelog@21c9de9bee9692173780696d4a39964f20b9cfa3 # v10.1.5
109121
with:
110122
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}
111123
use-conventional-commits: true

.github/workflows/manual_draft.yml

Lines changed: 68 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ env:
3636
MAIN_PYTHON_VERSION: '3.10'
3737
PYTEST_ARGUMENTS: '-vvv --color=yes -ra --durations=25 --maxfail=10 --cov=ansys.aedt.core --cov-report=html --cov-report=xml --junitxml=junit/test-results.xml'
3838

39+
permissions: {} # Disable default permissions
40+
3941
jobs:
4042

4143
system-test-solvers-windows:
@@ -45,6 +47,8 @@ jobs:
4547
steps:
4648
- name: Install Git and checkout project
4749
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
50+
with:
51+
persist-credentials: false
4852

4953
- name: Setup Python
5054
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
@@ -70,14 +74,25 @@ jobs:
7074
.venv\Scripts\Activate.ps1
7175
# Uninstall conflicting dependencies
7276
pip uninstall --yes vtk
73-
pip install --extra-index-url https://wheels.vtk.org vtk-osmesa==9.3.1
77+
pip install --index-url https://wheels.vtk.org vtk-osmesa==9.3.1
78+
79+
- name: Remove Ansys processes (if any)
80+
shell: powershell
81+
run: |
82+
Get-Process | Where-Object {
83+
$_.Path -like "*ansys inc*" -or $_.Path -like "*ansysem*"
84+
} | ForEach-Object {
85+
Write-Output "Killing $($_.Name) (PID: $($_.Id))"
86+
Stop-Process -Id $_.Id -Force
87+
}
7488
7589
- name: Run tests marked with 'solvers'
7690
env:
7791
PYTHONMALLOC: malloc
92+
PYTEST_ARGUMENTS: ${{ env.PYTEST_ARGUMENTS }}
7893
run: |
7994
.venv\Scripts\Activate.ps1
80-
pytest ${{ env.PYTEST_ARGUMENTS }} -m solvers
95+
pytest ${PYTEST_ARGUMENTS} -m solvers
8196
8297
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
8398
with:
@@ -102,33 +117,50 @@ jobs:
102117
steps:
103118
- name: Install Git and checkout project
104119
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
120+
with:
121+
persist-credentials: false
105122

106123
- name: Setup Python
107124
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
108125
with:
109126
python-version: ${{ env.MAIN_PYTHON_VERSION }}
110127

111128
- name: Create virtual environment
129+
env:
130+
ANSYSEM: ${{ env.ANSYSEM_ROOT252 }}
112131
run: |
113-
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT252 }}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
132+
export LD_LIBRARY_PATH=${ANSYSEM}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
114133
python -m venv .venv
115134
source .venv/bin/activate
116135
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip -U
117136
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org wheel setuptools -U
118137
python -c "import sys; print(sys.executable)"
119138
120139
- name: Install pyaedt and tests dependencies
140+
env:
141+
ANSYSEM: ${{ env.ANSYSEM_ROOT252 }}
121142
run: |
122-
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT252 }}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
143+
export LD_LIBRARY_PATH=${ANSYSEM}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
123144
source .venv/bin/activate
124145
pip install .[tests]
125146
pip install pytest-azurepipelines
126147
148+
- name: Remove Ansys processes (if any)
149+
shell: bash
150+
run: |
151+
for pid in $(ps -eo pid,comm,args | grep -iE "ansys.inc|ansysem" | grep -v grep | awk '{print $1}'); do
152+
echo "Killing PID $pid"
153+
kill -9 "$pid"
154+
done
155+
127156
- name: Run tests marked with 'solvers'
157+
env:
158+
ANSYSEM: ${{ env.ANSYSEM_ROOT252 }}
159+
PYTEST_ARGUMENTS: ${{ env.PYTEST_ARGUMENTS }}
128160
run: |
129-
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT252 }}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
161+
export LD_LIBRARY_PATH=${ANSYSEM}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
130162
source .venv/bin/activate
131-
pytest ${{ env.PYTEST_ARGUMENTS }} -m solvers
163+
pytest ${PYTEST_ARGUMENTS} -m solvers
132164
133165
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
134166
with:
@@ -150,6 +182,8 @@ jobs:
150182
steps:
151183
- name: Install Git and checkout project
152184
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
185+
with:
186+
persist-credentials: false
153187

154188
- name: Setup Python
155189
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
@@ -175,7 +209,17 @@ jobs:
175209
.venv\Scripts\Activate.ps1
176210
# Uninstall conflicting dependencies
177211
pip uninstall --yes vtk
178-
pip install --extra-index-url https://wheels.vtk.org vtk-osmesa==9.3.1
212+
pip install --index-url https://wheels.vtk.org vtk-osmesa==9.3.1
213+
214+
- name: Remove Ansys processes (if any)
215+
shell: powershell
216+
run: |
217+
Get-Process | Where-Object {
218+
$_.Path -like "*ansys inc*" -or $_.Path -like "*ansysem*"
219+
} | ForEach-Object {
220+
Write-Output "Killing $($_.Name) (PID: $($_.Id))"
221+
Stop-Process -Id $_.Id -Force
222+
}
179223
180224
- name: Run tests marked with 'general'
181225
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2
@@ -212,24 +256,30 @@ jobs:
212256
steps:
213257
- name: Install Git and checkout project
214258
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
259+
with:
260+
persist-credentials: false
215261

216262
- name: Setup Python
217263
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
218264
with:
219265
python-version: ${{ env.MAIN_PYTHON_VERSION }}
220266

221267
- name: Create virtual environment
268+
env:
269+
ANSYSEM: ${{ env.ANSYSEM_ROOT252 }}
222270
run: |
223-
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT252 }}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
271+
export LD_LIBRARY_PATH=${ANSYSEM}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
224272
python -m venv .venv
225273
source .venv/bin/activate
226274
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip -U
227275
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org wheel setuptools -U
228276
python -c "import sys; print(sys.executable)"
229277
230278
- name: Install pyaedt and tests dependencies
279+
env:
280+
ANSYSEM: ${{ env.ANSYSEM_ROOT252 }}
231281
run: |
232-
export LD_LIBRARY_PATH=${{ env.ANSYSEM_ROOT252 }}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
282+
export LD_LIBRARY_PATH=${ANSYSEM}/common/mono/Linux64/lib64:$LD_LIBRARY_PATH
233283
source .venv/bin/activate
234284
pip install .[tests]
235285
pip install pytest-azurepipelines
@@ -239,7 +289,15 @@ jobs:
239289
source .venv/bin/activate
240290
# Uninstall conflicting dependencies
241291
pip uninstall --yes vtk
242-
pip install --extra-index-url https://wheels.vtk.org vtk-osmesa==9.3.1
292+
pip install --index-url https://wheels.vtk.org vtk-osmesa==9.3.1
293+
294+
- name: Remove Ansys processes (if any)
295+
shell: bash
296+
run: |
297+
for pid in $(ps -eo pid,comm,args | grep -iE "ansys.inc|ansysem" | grep -v grep | awk '{print $1}'); do
298+
echo "Killing PID $pid"
299+
kill -9 "$pid"
300+
done
243301
244302
- name: Run tests marked with 'general'
245303
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3.0.2

.github/workflows/nightly-docs.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,25 @@ concurrency:
1414
group: ${{ github.workflow }}-${{ github.ref }}
1515
cancel-in-progress: true
1616

17+
permissions: {} # Disable default permissions
18+
1719
jobs:
1820

1921
doc-build:
2022
name: Documentation build
2123
runs-on: ubuntu-latest
2224
steps:
25+
- name: Temporary handle broken package dependencies
26+
shell: bash
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get --fix-broken install -y
30+
sudo apt-get install -y graphviz texlive-latex-extra latexmk texlive-xetex texlive-fonts-extra
31+
2332
- name: Documentation build
24-
uses: ansys/actions/doc-build@e0de7dd89b2a4c100f74327666d5521cfda17950 # v10.1.1
33+
uses: ansys/actions/doc-build@21c9de9bee9692173780696d4a39964f20b9cfa3 # v10.1.5
2534
with:
26-
dependencies: "graphviz texlive-latex-extra latexmk texlive-xetex texlive-fonts-extra"
35+
# dependencies: "graphviz texlive-latex-extra latexmk texlive-xetex texlive-fonts-extra"
2736
python-version: ${{ env.MAIN_PYTHON_VERSION }}
2837
sphinxopts: '-j auto --color -w build_errors.txt'
2938
check-links: false
@@ -33,9 +42,11 @@ jobs:
3342
name: Upload dev documentation
3443
runs-on: ubuntu-latest
3544
needs: doc-build
45+
permissions:
46+
contents: write
3647
steps:
3748
- name: Upload development documentation
38-
uses: ansys/actions/doc-deploy-dev@e0de7dd89b2a4c100f74327666d5521cfda17950 # v10.1.1
49+
uses: ansys/actions/doc-deploy-dev@21c9de9bee9692173780696d4a39964f20b9cfa3 # v10.1.5
3950
with:
4051
cname: ${{ env.DOCUMENTATION_CNAME }}
4152
token: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -372,12 +372,11 @@ dist/
372372
/htmlcov/
373373
/coverage.xml
374374
/tests/system/general/coverage.xml
375-
/tests/system/general/local_config.json
376375
/tests/system/solvers/coverage.xml
377-
/tests/system/solvers/local_config.json
378376
/tests/unit/coverage.xml
379377
test-results.xml
380378
test-output.xml
379+
*local_config.json
381380

382381
# Scratch Jupyter Notebooks
383382
scratch_notebooks/
@@ -397,13 +396,10 @@ model.index\+
397396

398397
# local environment settings used by e.g. Visual Studio Code
399398
/.env
400-
/doc/source/local_config.json
401399
/.venv*
402400

403401
# test coverage output
404402
/.cov/
405-
/tests/system/visualization/local_config.json
406-
/tests/system/general/pyaedt_settings.yaml
407403

408404
# Custom instructions for GitHub Copilot
409405
.github/copilot-instructions.md

CONTRIBUTORS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
* [German](https://github.com/germa89)
4848
* [gkorompi](https://github.com/gkorompi)
4949
* [gmalinve](https://github.com/gmalinve)
50+
* [GongYeSUDA](https://github.com/GongYeSUDA)
5051
* [HaiwenZhang](https://github.com/HaiwenZhang)
5152
* [Hui Zhou](https://github.com/hui-zhou-a)
5253
* [Irene Woyna](https://github.com/IreneWoyna)
@@ -84,6 +85,7 @@
8485
* [Patrick J. O'Brien](https://github.com/obrienpja)
8586
* [pblarsen-ansys](https://github.com/pblarsen-ansys)
8687
* [Peter Elmers](https://github.com/pelmers)
88+
* [PositroniumJS](https://github.com/PositroniumJS)
8789
* [Pumichat (Kla)](https://github.com/anspraksaph)
8890
* [Ramin Aghajafari](https://github.com/ramin4667)
8991
* [Revathy Venugopal](https://github.com/Revathyvenugopal162)
@@ -107,10 +109,12 @@
107109
* [Tadahiro Negishi](https://github.com/tadanegishi)
108110
* [Tejas Jeurkar](https://github.com/TejasJe)
109111
* [Tiziana Bertoncelli](https://github.com/tizianrot)
112+
* [Tushar Bana](https://github.com/tusharbana-ansys)
110113
* [Valérie Gelbgras](https://github.com/vgelbgras)
111114
* [Vinod_GPS_Ansys](https://github.com/pvinod13)
112115
* [voss70](https://github.com/voss70)
113116
* [vossleon](https://github.com/vossleon)
114117
* [vpipidis](https://github.com/vpipidis)
118+
* [Xiaoyang Ma](https://github.com/boltma)
115119
* [XZ](https://github.com/atlanswer)
116120
* [Zeba](https://github.com/zebanaqviWAT)

MANIFEST.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
global-include ansys.aedt.core *.txt *.md *.toml *.json *.png *.xml *.areg *.joblib *.acf *.m *.ipynb *.py_build
2+
include src/ansys/aedt/core/syslib/**/*.so
3+
include src/ansys/aedt/core/syslib/**/*.pyd
4+
include src/ansys/aedt/core/syslib/**/*.license

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,17 @@ You can install PyAEDT on CPython 3.8 through 3.12 from PyPI with this command:
4848
pip install pyaedt
4949
```
5050

51-
Install PyAEDT with all extra packages (matplotlib, numpy, pandas, pyvista):
51+
Install PyAEDT with all extra packages (matplotlib, numpy, pandas, pyvista, ...):
5252

5353
```sh
5454
pip install pyaedt[all]
5555
```
5656

57+
> **Note:**
58+
The [all] installation target includes `fpdf2` for PDF export functionality, which is
59+
under license LGPL v3. For license-sensitive environments, install PyAEDT without [all]
60+
and add dependencies individually.
61+
5762
You can also install PyAEDT from Conda-Forge with this command:
5863

5964
```sh
@@ -305,6 +310,11 @@ On any Windows client machine:
305310

306311
PyAEDT is licensed under the MIT license.
307312

313+
PyAEDT provides an optional PDF export feature via the class `AnsysReport`.
314+
It requires the [fpdf2](https://github.com/py-pdf/fpdf2)
315+
library, which is licensed under the
316+
[GNU Lesser General Public License v3.0 (LGPLv3)](https://www.gnu.org/licenses/lgpl-3.0.en.html#license-text).
317+
308318
PyAEDT makes no commercial claim over Ansys whatsoever. This library extends the
309319
functionality of AEDT by adding a Python interface to AEDT without changing the
310320
core behavior or license of the original software. The use of PyAEDT requires a

0 commit comments

Comments
 (0)