temfield-mpylab 0.0.1__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.
- temfield_mpylab-0.0.1/.gitignore +251 -0
- temfield_mpylab-0.0.1/.gitlab-ci.yml +105 -0
- temfield_mpylab-0.0.1/LICENSE +25 -0
- temfield_mpylab-0.0.1/PKG-INFO +62 -0
- temfield_mpylab-0.0.1/README.md +29 -0
- temfield_mpylab-0.0.1/docs/Makefile +20 -0
- temfield_mpylab-0.0.1/docs/_static/.gitkeep +0 -0
- temfield_mpylab-0.0.1/docs/api/EUT.rst +6 -0
- temfield_mpylab-0.0.1/docs/api/TestSusceptibility.rst +6 -0
- temfield_mpylab-0.0.1/docs/api/index.rst +10 -0
- temfield_mpylab-0.0.1/docs/api/main.rst +21 -0
- temfield_mpylab-0.0.1/docs/api/measurement_worker.rst +7 -0
- temfield_mpylab-0.0.1/docs/conf.py +86 -0
- temfield_mpylab-0.0.1/docs/index.rst +28 -0
- temfield_mpylab-0.0.1/docs/make.bat +35 -0
- temfield_mpylab-0.0.1/pyproject.toml +61 -0
- temfield_mpylab-0.0.1/setup.cfg +4 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/EUT.py +72 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/TestSusceptibility.py +218 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/__init__.py +1 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/main.py +547 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/mainwindow.py +626 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/mainwindow.ui +885 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/measurement_worker.py +228 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/PKG-INFO +62 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/SOURCES.txt +53 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/dependency_links.txt +1 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/entry_points.txt +2 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/requires.txt +8 -0
- temfield_mpylab-0.0.1/src/temfield_mpylab/temfield_mpylab.egg-info/top_level.txt +1 -0
- temfield_mpylab-0.0.1/test/conf/amp1out-gtem.dat +204 -0
- temfield_mpylab-0.0.1/test/conf/amp1out-gtem.ini +20 -0
- temfield_mpylab-0.0.1/test/conf/amp2out-gtem.dat +203 -0
- temfield_mpylab-0.0.1/test/conf/amp2out-gtem.ini +20 -0
- temfield_mpylab-0.0.1/test/conf/amp_ametek_cba_1g_030d.ini +60 -0
- temfield_mpylab-0.0.1/test/conf/amp_ar_25s1g4.ini +134 -0
- temfield_mpylab-0.0.1/test/conf/gtem.dot +37 -0
- temfield_mpylab-0.0.1/test/conf/prb_lumi_ci250p.ini +21 -0
- temfield_mpylab-0.0.1/test/conf/sg-amp1in.dat +204 -0
- temfield_mpylab-0.0.1/test/conf/sg-amp1in.ini +20 -0
- temfield_mpylab-0.0.1/test/conf/sg-amp2in.dat +204 -0
- temfield_mpylab-0.0.1/test/conf/sg-amp2in.ini +20 -0
- temfield_mpylab-0.0.1/test/conf/sg_rs_smb100a.ini +20 -0
- temfield_mpylab-0.0.1/test/conf/sw_gtem.ini +19 -0
- temfield_mpylab-0.0.1/test/conf/sw_gtem.py +118 -0
- temfield_mpylab-0.0.1/test/conf-virtual/amp1_virtual.ini +40 -0
- temfield_mpylab-0.0.1/test/conf-virtual/amp1out-gtem_virtual.ini +27 -0
- temfield_mpylab-0.0.1/test/conf-virtual/amp2_virtual.ini +40 -0
- temfield_mpylab-0.0.1/test/conf-virtual/amp2out-gtem_virtual.ini +27 -0
- temfield_mpylab-0.0.1/test/conf-virtual/gtem-virtual.dot +37 -0
- temfield_mpylab-0.0.1/test/conf-virtual/prb_virtual.ini +22 -0
- temfield_mpylab-0.0.1/test/conf-virtual/sg-amp1in_virtual.ini +27 -0
- temfield_mpylab-0.0.1/test/conf-virtual/sg-amp2in_virtual.ini +27 -0
- temfield_mpylab-0.0.1/test/conf-virtual/sg_virtual.ini +19 -0
- temfield_mpylab-0.0.1/test/conf-virtual/sw_virtual.ini +12 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# UV
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
#uv.lock
|
|
102
|
+
|
|
103
|
+
# poetry
|
|
104
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
105
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
106
|
+
# commonly ignored for libraries.
|
|
107
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
108
|
+
#poetry.lock
|
|
109
|
+
|
|
110
|
+
# pdm
|
|
111
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
112
|
+
#pdm.lock
|
|
113
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
114
|
+
# in version control.
|
|
115
|
+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
|
116
|
+
.pdm.toml
|
|
117
|
+
.pdm-python
|
|
118
|
+
.pdm-build/
|
|
119
|
+
|
|
120
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
121
|
+
__pypackages__/
|
|
122
|
+
|
|
123
|
+
# Celery stuff
|
|
124
|
+
celerybeat-schedule
|
|
125
|
+
celerybeat.pid
|
|
126
|
+
|
|
127
|
+
# SageMath parsed files
|
|
128
|
+
*.sage.py
|
|
129
|
+
|
|
130
|
+
# Environments
|
|
131
|
+
.env
|
|
132
|
+
.venv
|
|
133
|
+
env/
|
|
134
|
+
venv/
|
|
135
|
+
ENV/
|
|
136
|
+
env.bak/
|
|
137
|
+
venv.bak/
|
|
138
|
+
|
|
139
|
+
# Spyder project settings
|
|
140
|
+
.spyderproject
|
|
141
|
+
.spyproject
|
|
142
|
+
|
|
143
|
+
# Rope project settings
|
|
144
|
+
.ropeproject
|
|
145
|
+
|
|
146
|
+
# mkdocs documentation
|
|
147
|
+
/site
|
|
148
|
+
|
|
149
|
+
# mypy
|
|
150
|
+
.mypy_cache/
|
|
151
|
+
.dmypy.json
|
|
152
|
+
dmypy.json
|
|
153
|
+
|
|
154
|
+
# Pyre type checker
|
|
155
|
+
.pyre/
|
|
156
|
+
|
|
157
|
+
# pytype static type analyzer
|
|
158
|
+
.pytype/
|
|
159
|
+
|
|
160
|
+
# Cython debug symbols
|
|
161
|
+
cython_debug/
|
|
162
|
+
|
|
163
|
+
# PyCharm
|
|
164
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
165
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
166
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
167
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
168
|
+
#.idea/
|
|
169
|
+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
170
|
+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
171
|
+
|
|
172
|
+
# User-specific stuff
|
|
173
|
+
.idea/**/workspace.xml
|
|
174
|
+
.idea/**/tasks.xml
|
|
175
|
+
.idea/**/usage.statistics.xml
|
|
176
|
+
.idea/**/dictionaries
|
|
177
|
+
.idea/**/shelf
|
|
178
|
+
|
|
179
|
+
# AWS User-specific
|
|
180
|
+
.idea/**/aws.xml
|
|
181
|
+
|
|
182
|
+
# Generated files
|
|
183
|
+
.idea/**/contentModel.xml
|
|
184
|
+
|
|
185
|
+
# Sensitive or high-churn files
|
|
186
|
+
.idea/**/dataSources/
|
|
187
|
+
.idea/**/dataSources.ids
|
|
188
|
+
.idea/**/dataSources.local.xml
|
|
189
|
+
.idea/**/sqlDataSources.xml
|
|
190
|
+
.idea/**/dynamic.xml
|
|
191
|
+
.idea/**/uiDesigner.xml
|
|
192
|
+
.idea/**/dbnavigator.xml
|
|
193
|
+
|
|
194
|
+
# Gradle
|
|
195
|
+
.idea/**/gradle.xml
|
|
196
|
+
.idea/**/libraries
|
|
197
|
+
|
|
198
|
+
# Gradle and Maven with auto-import
|
|
199
|
+
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
200
|
+
# since they will be recreated, and may cause churn. Uncomment if using
|
|
201
|
+
# auto-import.
|
|
202
|
+
# .idea/artifacts
|
|
203
|
+
# .idea/compiler.xml
|
|
204
|
+
# .idea/jarRepositories.xml
|
|
205
|
+
# .idea/modules.xml
|
|
206
|
+
# .idea/*.iml
|
|
207
|
+
# .idea/modules
|
|
208
|
+
# *.iml
|
|
209
|
+
# *.ipr
|
|
210
|
+
|
|
211
|
+
# CMake
|
|
212
|
+
cmake-build-*/
|
|
213
|
+
|
|
214
|
+
# Mongo Explorer plugin
|
|
215
|
+
.idea/**/mongoSettings.xml
|
|
216
|
+
|
|
217
|
+
# File-based project format
|
|
218
|
+
*.iws
|
|
219
|
+
|
|
220
|
+
# IntelliJ
|
|
221
|
+
out/
|
|
222
|
+
|
|
223
|
+
# mpeltonen/sbt-idea plugin
|
|
224
|
+
.idea_modules/
|
|
225
|
+
|
|
226
|
+
# JIRA plugin
|
|
227
|
+
atlassian-ide-plugin.xml
|
|
228
|
+
|
|
229
|
+
# Cursive Clojure plugin
|
|
230
|
+
.idea/replstate.xml
|
|
231
|
+
|
|
232
|
+
# SonarLint plugin
|
|
233
|
+
.idea/sonarlint/
|
|
234
|
+
|
|
235
|
+
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
236
|
+
com_crashlytics_export_strings.xml
|
|
237
|
+
crashlytics.properties
|
|
238
|
+
crashlytics-build.properties
|
|
239
|
+
fabric.properties
|
|
240
|
+
|
|
241
|
+
#PyCharm
|
|
242
|
+
.idea/
|
|
243
|
+
|
|
244
|
+
# Editor-based Rest Client
|
|
245
|
+
.idea/httpRequests
|
|
246
|
+
|
|
247
|
+
# Android studio 3.1+ serialized cache file
|
|
248
|
+
.idea/caches/build_file_checksums.ser
|
|
249
|
+
|
|
250
|
+
public
|
|
251
|
+
/src/temfield_mpylab/_version.py
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
stages:
|
|
2
|
+
- deploy
|
|
3
|
+
|
|
4
|
+
# ============================================
|
|
5
|
+
# JOB 1: GitLab Pages (Dokumentation)
|
|
6
|
+
# ============================================
|
|
7
|
+
create-pages:
|
|
8
|
+
stage: deploy
|
|
9
|
+
variables:
|
|
10
|
+
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
|
11
|
+
MPLCONFIGDIR: "$CI_PROJECT_DIR/.cache/matplotlib"
|
|
12
|
+
cache:
|
|
13
|
+
key: "${CI_COMMIT_REF_SLUG}"
|
|
14
|
+
paths:
|
|
15
|
+
- .cache/pip
|
|
16
|
+
- .cache/matplotlib
|
|
17
|
+
- .ci_venv
|
|
18
|
+
|
|
19
|
+
before_script:
|
|
20
|
+
- python3 -m venv .ci_venv
|
|
21
|
+
- source .ci_venv/bin/activate
|
|
22
|
+
- pip3 install --upgrade pip
|
|
23
|
+
- pip3 install -e .
|
|
24
|
+
- pip3 install sphinx
|
|
25
|
+
|
|
26
|
+
script:
|
|
27
|
+
- mkdir -p public
|
|
28
|
+
- sphinx-build -W --keep-going -E -a -b html docs public
|
|
29
|
+
|
|
30
|
+
pages: true
|
|
31
|
+
|
|
32
|
+
rules:
|
|
33
|
+
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
|
34
|
+
- if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/'
|
|
35
|
+
|
|
36
|
+
# ============================================
|
|
37
|
+
# JOB 2: TestPyPI Deployment (rc/dev/alpha/beta)
|
|
38
|
+
# ============================================
|
|
39
|
+
deploy_test_pypi:
|
|
40
|
+
environment:
|
|
41
|
+
name: test
|
|
42
|
+
stage: deploy
|
|
43
|
+
|
|
44
|
+
variables:
|
|
45
|
+
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
|
46
|
+
|
|
47
|
+
before_script:
|
|
48
|
+
- python3 -m venv .ci_venv
|
|
49
|
+
- source .ci_venv/bin/activate
|
|
50
|
+
- pip3 install --upgrade pip
|
|
51
|
+
- pip3 install build twine
|
|
52
|
+
|
|
53
|
+
script:
|
|
54
|
+
- python3 -m build
|
|
55
|
+
- |
|
|
56
|
+
if [ -z "$TEST_PYPI_TOKEN" ]; then
|
|
57
|
+
echo "CRITICAL: TEST_PYPI_TOKEN is EMPTY!"
|
|
58
|
+
env | grep -Ei 'PYPI|TOKEN' | sed 's/=.*/=<set>/'
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
- twine upload dist/* --repository testpypi --username __token__ --password "$TEST_PYPI_TOKEN"
|
|
62
|
+
rules:
|
|
63
|
+
- if: '$CI_COMMIT_TAG =~ /(rc|dev|alpha|beta)/i'
|
|
64
|
+
when: always
|
|
65
|
+
- when: never
|
|
66
|
+
|
|
67
|
+
artifacts:
|
|
68
|
+
paths:
|
|
69
|
+
- dist/
|
|
70
|
+
expire_in: 1 week
|
|
71
|
+
|
|
72
|
+
# ============================================
|
|
73
|
+
# JOB 3: Echtes PyPI Deployment (nur finale Tags)
|
|
74
|
+
# ============================================
|
|
75
|
+
deploy_pypi:
|
|
76
|
+
environment:
|
|
77
|
+
name: production
|
|
78
|
+
stage: deploy
|
|
79
|
+
|
|
80
|
+
variables:
|
|
81
|
+
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
|
82
|
+
|
|
83
|
+
before_script:
|
|
84
|
+
- python3 -m venv .ci_venv
|
|
85
|
+
- source .ci_venv/bin/activate
|
|
86
|
+
- pip3 install --upgrade pip
|
|
87
|
+
- pip3 install build twine
|
|
88
|
+
|
|
89
|
+
script:
|
|
90
|
+
- python3 -m build
|
|
91
|
+
- |
|
|
92
|
+
if [ -z "$PYPI_TOKEN" ]; then
|
|
93
|
+
echo "CRITICAL: PYPI_TOKEN is EMPTY!"
|
|
94
|
+
exit 1
|
|
95
|
+
fi
|
|
96
|
+
- twine upload dist/* --repository pypi --username __token__ --password "$PYPI_TOKEN"
|
|
97
|
+
rules:
|
|
98
|
+
- if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/'
|
|
99
|
+
when: always
|
|
100
|
+
- when: never
|
|
101
|
+
|
|
102
|
+
artifacts:
|
|
103
|
+
paths:
|
|
104
|
+
- dist/
|
|
105
|
+
expire_in: 1 week
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
This module is free software: you can redistribute it and/or modify
|
|
2
|
+
it under the terms of the GNU General Public License as published by
|
|
3
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
4
|
+
(at your option) any later version.
|
|
5
|
+
|
|
6
|
+
This module is distributed in the hope that it will be useful,
|
|
7
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
+
GNU General Public License for more details.
|
|
10
|
+
|
|
11
|
+
You should have received a copy of the GNU General Public License
|
|
12
|
+
along with this module. If not, see <http://www.gnu.org/licenses/>.
|
|
13
|
+
|
|
14
|
+
Dieses Modul ist Freie Software: Sie können es unter den Bedingungen
|
|
15
|
+
der GNU General Public License, wie von der Free Software Foundation,
|
|
16
|
+
Version 3 der Lizenz oder (nach Ihrer Wahl) jeder neueren
|
|
17
|
+
veröffentlichten Version, weiter verteilen und/oder modifizieren.
|
|
18
|
+
|
|
19
|
+
Dieses Modul wird in der Hoffnung bereitgestellt, dass es nützlich sein wird, jedoch
|
|
20
|
+
OHNE JEDE GEWÄHR,; sogar ohne die implizite
|
|
21
|
+
Gewähr der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
|
|
22
|
+
Siehe die GNU General Public License für weitere Einzelheiten.
|
|
23
|
+
|
|
24
|
+
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
|
|
25
|
+
Modul erhalten haben. Wenn nicht, siehe <https://www.gnu.org/licenses/>.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: temfield_mpylab
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Radiated Susceptibility in (G)TEM cells using MpyLab
|
|
5
|
+
Author-email: Hans Georg Krauthäuser <hgk@ieee.org>
|
|
6
|
+
Maintainer-email: Hans Georg Krauthäuser <hgk@ieee.org>
|
|
7
|
+
License-Expression: GPL-3.0-or-later
|
|
8
|
+
Project-URL: Homepage, https://www.tu-dresden.de/et/tet
|
|
9
|
+
Project-URL: Repository, https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git
|
|
10
|
+
Project-URL: Documentation, https://temfield-1012e2.gp.hrz.tu-chemnitz.de/
|
|
11
|
+
Keywords: pyvisa,gpib,measurements,laboratory
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Education
|
|
15
|
+
Classifier: Intended Audience :: Science/Research
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Requires-Python: >=3.9
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: matplotlib>=3.9.4
|
|
26
|
+
Requires-Dist: mpylab
|
|
27
|
+
Requires-Dist: numpy>=2.0.2
|
|
28
|
+
Requires-Dist: pyside6>=6.10.1
|
|
29
|
+
Requires-Dist: scuq>=0.9.1
|
|
30
|
+
Provides-Extra: docs
|
|
31
|
+
Requires-Dist: sphinx>=8.0; extra == "docs"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# TemField
|
|
35
|
+
|
|
36
|
+
Radiated EMC susceptibility measurements in (G)TEM waveguides using **mpylab**
|
|
37
|
+
|
|
38
|
+
This software is distributed unter GPL-3 or higher. See LICENSE for details.
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
> pip install temfield_mpylab
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## License
|
|
46
|
+
|
|
47
|
+
GPL-3 or higher
|
|
48
|
+
|
|
49
|
+
## Repository
|
|
50
|
+
|
|
51
|
+
[https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git](https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git)
|
|
52
|
+
|
|
53
|
+
## Documentation
|
|
54
|
+
|
|
55
|
+
[https://temfield-1012e2.gp.hrz.tu-chemnitz.de/](https://temfield-1012e2.gp.hrz.tu-chemnitz.de/)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Contact
|
|
59
|
+
|
|
60
|
+
Prof. Dr. Hans Georg Krauthäuser (hgk@ieee.org)
|
|
61
|
+
Chair for Electromagnetic Theory and Compatibility
|
|
62
|
+
Technische Universität Dresden, Dresden, Germany
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# TemField
|
|
2
|
+
|
|
3
|
+
Radiated EMC susceptibility measurements in (G)TEM waveguides using **mpylab**
|
|
4
|
+
|
|
5
|
+
This software is distributed unter GPL-3 or higher. See LICENSE for details.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
> pip install temfield_mpylab
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## License
|
|
13
|
+
|
|
14
|
+
GPL-3 or higher
|
|
15
|
+
|
|
16
|
+
## Repository
|
|
17
|
+
|
|
18
|
+
[https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git](https://gitlab.hrz.tu-chemnitz.de/chair-of-electromagnetic-theory-and-compatibility-at-tu-dresden/mpylab/TEMField.git)
|
|
19
|
+
|
|
20
|
+
## Documentation
|
|
21
|
+
|
|
22
|
+
[https://temfield-1012e2.gp.hrz.tu-chemnitz.de/](https://temfield-1012e2.gp.hrz.tu-chemnitz.de/)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Contact
|
|
26
|
+
|
|
27
|
+
Prof. Dr. Hans Georg Krauthäuser (hgk@ieee.org)
|
|
28
|
+
Chair for Electromagnetic Theory and Compatibility
|
|
29
|
+
Technische Universität Dresden, Dresden, Germany
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR = _build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
temfield_mpylab.main
|
|
2
|
+
====================
|
|
3
|
+
|
|
4
|
+
This module contains the PySide6 GUI entry point for TEMField.
|
|
5
|
+
|
|
6
|
+
It is intentionally not imported by the API documentation build, because
|
|
7
|
+
importing it loads the Qt Matplotlib backend and PySide6 widget stack. On
|
|
8
|
+
headless CI runners this can require system OpenGL/EGL/XCB libraries that are
|
|
9
|
+
not needed for documenting the non-GUI measurement API.
|
|
10
|
+
|
|
11
|
+
The public command line entry point is:
|
|
12
|
+
|
|
13
|
+
.. code-block:: text
|
|
14
|
+
|
|
15
|
+
temfield
|
|
16
|
+
|
|
17
|
+
The application entry function is:
|
|
18
|
+
|
|
19
|
+
.. code-block:: python
|
|
20
|
+
|
|
21
|
+
temfield_mpylab.main.main()
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
try:
|
|
5
|
+
from importlib.metadata import version as pkg_version
|
|
6
|
+
release = pkg_version("temfield_mpylab")
|
|
7
|
+
except Exception:
|
|
8
|
+
release = "dev"
|
|
9
|
+
|
|
10
|
+
src_dir = Path(__file__).resolve().parent.parent / 'src'
|
|
11
|
+
sys.path.insert(0, str(src_dir))
|
|
12
|
+
|
|
13
|
+
project = 'temfield_mpylab'
|
|
14
|
+
copyright = '2026, Hans Georg Krauthäuser'
|
|
15
|
+
author = 'Hans Georg Krauthäuser'
|
|
16
|
+
|
|
17
|
+
version = ".".join(release.split(".")[:2])
|
|
18
|
+
|
|
19
|
+
extensions = [
|
|
20
|
+
'sphinx.ext.autodoc', # Automatische API-Dokumentation aus Docstrings
|
|
21
|
+
'sphinx.ext.viewcode', # Fügt "View Source"-Links hinzu
|
|
22
|
+
'sphinx.ext.intersphinx', # Links zu externer Doku (numpy, scipy, python)
|
|
23
|
+
'sphinx.ext.todo', # TODO-Kommentare
|
|
24
|
+
'matplotlib.sphinxext.roles',
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
templates_path = ['_templates']
|
|
28
|
+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
29
|
+
html_theme = 'default'
|
|
30
|
+
|
|
31
|
+
# Name der Hauptdatei
|
|
32
|
+
master_doc = 'index'
|
|
33
|
+
html_static_path = ['_static']
|
|
34
|
+
|
|
35
|
+
autodoc_default_options = {
|
|
36
|
+
'members': True, # Alle Mitglieder dokumentieren
|
|
37
|
+
'member-order': 'bysource', # Reihenfolge wie im Code, nicht alphabetisch
|
|
38
|
+
'special-members': '__init__', # __init__ Methoden einschließen
|
|
39
|
+
'undoc-members': True, # Auch undocumented members zeigen (optional)
|
|
40
|
+
'exclude-members': (
|
|
41
|
+
'__weakref__,'
|
|
42
|
+
'Figure,FigureCanvas,NavigationToolbar,'
|
|
43
|
+
'QApplication,QFileDialog,QMainWindow,QMessageBox,QTableWidgetItem,'
|
|
44
|
+
'QVBoxLayout,QWidget,QObject,QMutex,QMutexLocker,QSettings,QThread,'
|
|
45
|
+
'QWaitCondition,QLocale,Qt,Signal,Slot'
|
|
46
|
+
),
|
|
47
|
+
'show-inheritance': True, # Vererbung anzeigen
|
|
48
|
+
'imported-members': False, # Nur lokale Mitglieder (optional)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def skip_external_members(app, what, name, obj, skip, options):
|
|
53
|
+
"""Hide imported Qt and Matplotlib objects from project API pages."""
|
|
54
|
+
module = getattr(obj, '__module__', '')
|
|
55
|
+
if module.startswith(('PySide6.', 'matplotlib.')):
|
|
56
|
+
return True
|
|
57
|
+
return skip
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def setup(app):
|
|
61
|
+
app.connect('autodoc-skip-member', skip_external_members)
|
|
62
|
+
|
|
63
|
+
# -----------------------------------------------------------------------------
|
|
64
|
+
# 7. INTERSPHINX MAPPING (Externe Links)
|
|
65
|
+
# -----------------------------------------------------------------------------
|
|
66
|
+
intersphinx_mapping = {
|
|
67
|
+
'python': ('https://docs.python.org/3', None),
|
|
68
|
+
'numpy': ('https://numpy.org/doc/stable/', None),
|
|
69
|
+
'scipy': ('https://docs.scipy.org/doc/scipy/', None),
|
|
70
|
+
'matplotlib': ('https://matplotlib.org/stable/', None),
|
|
71
|
+
'mpylab': ('https://mpylab-75fcff.gp.hrz.tu-chemnitz.de/', None),
|
|
72
|
+
'scuq': ('https://scuq-b5d96a.gp.hrz.tu-chemnitz.de/', None),
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
# -----------------------------------------------------------------------------
|
|
76
|
+
# 8. SONSTIGE OPTIONEN
|
|
77
|
+
# -----------------------------------------------------------------------------
|
|
78
|
+
mathjax_path = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'
|
|
79
|
+
todo_include_todos = True
|
|
80
|
+
|
|
81
|
+
# -----------------------------------------------------------------------------
|
|
82
|
+
# 9. AUTOMATISCHE INDEX GENERIERUNG (Optional)
|
|
83
|
+
# -----------------------------------------------------------------------------
|
|
84
|
+
# Wenn du 'sphinx.ext.autosummary' nutzen willst, um automatisch RST-Dateien zu generieren:
|
|
85
|
+
# extensions.append('sphinx.ext.autosummary')
|
|
86
|
+
# autosummary_generate = True
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
temfield-mpylab documentation
|
|
2
|
+
=============================
|
|
3
|
+
|
|
4
|
+
TEMField performs radiated susceptibility measurements in (G)TEM cells using
|
|
5
|
+
MpyLab. The PySide6 user interface starts the measurement sequence in a
|
|
6
|
+
dedicated worker thread, keeping the GUI responsive while instrument commands
|
|
7
|
+
are executed by the measurement worker.
|
|
8
|
+
|
|
9
|
+
Installation
|
|
10
|
+
------------
|
|
11
|
+
|
|
12
|
+
Install the package from PyPI:
|
|
13
|
+
|
|
14
|
+
.. code-block:: bash
|
|
15
|
+
|
|
16
|
+
pip install temfield_mpylab
|
|
17
|
+
|
|
18
|
+
Run ``main.py`` from the package or use the installed ``temfield`` entry point.
|
|
19
|
+
|
|
20
|
+
API
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
.. toctree::
|
|
24
|
+
:maxdepth: 2
|
|
25
|
+
:caption: Contents:
|
|
26
|
+
|
|
27
|
+
api/index
|
|
28
|
+
|