bapsf-motion 0.2.0b1__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 (128) hide show
  1. bapsf_motion-0.2.0b1/.gitattributes +10 -0
  2. bapsf_motion-0.2.0b1/.github/dependabot.yml +20 -0
  3. bapsf_motion-0.2.0b1/.github/workflows/python-publish.yml +48 -0
  4. bapsf_motion-0.2.0b1/.github/workflows/test.yml +217 -0
  5. bapsf_motion-0.2.0b1/.gitignore +151 -0
  6. bapsf_motion-0.2.0b1/.readthedocs.yml +23 -0
  7. bapsf_motion-0.2.0b1/PKG-INFO +140 -0
  8. bapsf_motion-0.2.0b1/README.md +47 -0
  9. bapsf_motion-0.2.0b1/bapsf_motion/__init__.py +59 -0
  10. bapsf_motion-0.2.0b1/bapsf_motion/actors/__init__.py +18 -0
  11. bapsf_motion-0.2.0b1/bapsf_motion/actors/axis_.py +328 -0
  12. bapsf_motion-0.2.0b1/bapsf_motion/actors/base.py +281 -0
  13. bapsf_motion-0.2.0b1/bapsf_motion/actors/demos/__init__.py +0 -0
  14. bapsf_motion-0.2.0b1/bapsf_motion/actors/demos/drive_timed_run_1D.py +80 -0
  15. bapsf_motion-0.2.0b1/bapsf_motion/actors/demos/drive_timed_run_2D.py +98 -0
  16. bapsf_motion-0.2.0b1/bapsf_motion/actors/demos/mgroup_timed_run_2D.py +103 -0
  17. bapsf_motion-0.2.0b1/bapsf_motion/actors/drive_.py +360 -0
  18. bapsf_motion-0.2.0b1/bapsf_motion/actors/manager_.py +420 -0
  19. bapsf_motion-0.2.0b1/bapsf_motion/actors/motion_group_.py +1059 -0
  20. bapsf_motion-0.2.0b1/bapsf_motion/actors/motor_.py +1813 -0
  21. bapsf_motion-0.2.0b1/bapsf_motion/actors/tests/__init__.py +0 -0
  22. bapsf_motion-0.2.0b1/bapsf_motion/examples/benchtop_motion_group.toml +27 -0
  23. bapsf_motion-0.2.0b1/bapsf_motion/examples/benchtop_run.toml +30 -0
  24. bapsf_motion-0.2.0b1/bapsf_motion/examples/mg_1d.toml +24 -0
  25. bapsf_motion-0.2.0b1/bapsf_motion/examples/mg_2d_strb_test_setup.toml +37 -0
  26. bapsf_motion-0.2.0b1/bapsf_motion/examples/motion_group.toml +18 -0
  27. bapsf_motion-0.2.0b1/bapsf_motion/gui/__init__.py +4 -0
  28. bapsf_motion-0.2.0b1/bapsf_motion/gui/configure.py +3628 -0
  29. bapsf_motion-0.2.0b1/bapsf_motion/gui/motor.py +313 -0
  30. bapsf_motion-0.2.0b1/bapsf_motion/gui/widgets/__init__.py +24 -0
  31. bapsf_motion-0.2.0b1/bapsf_motion/gui/widgets/buttons.py +233 -0
  32. bapsf_motion-0.2.0b1/bapsf_motion/gui/widgets/logging.py +305 -0
  33. bapsf_motion-0.2.0b1/bapsf_motion/gui/widgets/misc.py +101 -0
  34. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/__init__.py +12 -0
  35. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/core.py +434 -0
  36. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/__init__.py +37 -0
  37. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/base.py +201 -0
  38. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/circular.py +169 -0
  39. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/divider.py +197 -0
  40. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/helpers.py +176 -0
  41. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/exclusions/lapd.py +330 -0
  42. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/item.py +170 -0
  43. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/layers/__init__.py +27 -0
  44. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/layers/base.py +169 -0
  45. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/layers/helpers.py +178 -0
  46. bapsf_motion-0.2.0b1/bapsf_motion/motion_builder/layers/regular_grid.py +210 -0
  47. bapsf_motion-0.2.0b1/bapsf_motion/transform/__init__.py +12 -0
  48. bapsf_motion-0.2.0b1/bapsf_motion/transform/base.py +451 -0
  49. bapsf_motion-0.2.0b1/bapsf_motion/transform/helpers.py +153 -0
  50. bapsf_motion-0.2.0b1/bapsf_motion/transform/identity.py +80 -0
  51. bapsf_motion-0.2.0b1/bapsf_motion/transform/lapd.py +483 -0
  52. bapsf_motion-0.2.0b1/bapsf_motion/utils/__init__.py +112 -0
  53. bapsf_motion-0.2.0b1/bapsf_motion/utils/exceptions.py +13 -0
  54. bapsf_motion-0.2.0b1/bapsf_motion/utils/toml.py +55 -0
  55. bapsf_motion-0.2.0b1/bapsf_motion.egg-info/PKG-INFO +140 -0
  56. bapsf_motion-0.2.0b1/bapsf_motion.egg-info/SOURCES.txt +127 -0
  57. bapsf_motion-0.2.0b1/bapsf_motion.egg-info/dependency_links.txt +1 -0
  58. bapsf_motion-0.2.0b1/bapsf_motion.egg-info/requires.txt +90 -0
  59. bapsf_motion-0.2.0b1/bapsf_motion.egg-info/top_level.txt +1 -0
  60. bapsf_motion-0.2.0b1/docs/Makefile +32 -0
  61. bapsf_motion-0.2.0b1/docs/_static/BaPSF_Logo_Color_yellow_background_RGB_32px.ico +0 -0
  62. bapsf_motion-0.2.0b1/docs/_static/BaPSF_Logo_White_RGB.png +0 -0
  63. bapsf_motion-0.2.0b1/docs/_static/BaPSF_Logo_White_RGB_150px.png +0 -0
  64. bapsf_motion-0.2.0b1/docs/_static/css/overrides.css +4 -0
  65. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.axis_.rst +8 -0
  66. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.base.rst +8 -0
  67. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.drive_.rst +8 -0
  68. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.manager_.rst +8 -0
  69. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.motion_group_.rst +8 -0
  70. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.motor_.rst +8 -0
  71. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.actors.rst +8 -0
  72. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.configure.rst +8 -0
  73. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.motor.rst +8 -0
  74. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.rst +8 -0
  75. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.widgets.buttons.rst +8 -0
  76. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.widgets.logging.rst +8 -0
  77. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.widgets.misc.rst +8 -0
  78. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.gui.widgets.rst +8 -0
  79. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.core.rst +8 -0
  80. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.base.rst +8 -0
  81. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.circular.rst +8 -0
  82. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.divider.rst +8 -0
  83. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.helpers.rst +8 -0
  84. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.lapd.rst +8 -0
  85. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.exclusions.rst +8 -0
  86. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.item.rst +8 -0
  87. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.layers.base.rst +8 -0
  88. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.layers.helpers.rst +8 -0
  89. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.layers.regular_grid.rst +8 -0
  90. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.layers.rst +8 -0
  91. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.motion_builder.rst +9 -0
  92. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.rst +8 -0
  93. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.transform.base.rst +8 -0
  94. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.transform.helpers.rst +8 -0
  95. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.transform.identity.rst +8 -0
  96. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.transform.lapd.rst +8 -0
  97. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.transform.rst +8 -0
  98. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.utils.exceptions.rst +8 -0
  99. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.utils.rst +8 -0
  100. bapsf_motion-0.2.0b1/docs/api_static/bapsf_motion.utils.toml.rst +8 -0
  101. bapsf_motion-0.2.0b1/docs/available_transformers.rst +10 -0
  102. bapsf_motion-0.2.0b1/docs/bibliography.bib +10 -0
  103. bapsf_motion-0.2.0b1/docs/bibliography.rst +10 -0
  104. bapsf_motion-0.2.0b1/docs/common_links.rst +211 -0
  105. bapsf_motion-0.2.0b1/docs/conf.py +538 -0
  106. bapsf_motion-0.2.0b1/docs/glossary.rst +109 -0
  107. bapsf_motion-0.2.0b1/docs/index.rst +57 -0
  108. bapsf_motion-0.2.0b1/docs/make.bat +36 -0
  109. bapsf_motion-0.2.0b1/docs/motion_builder/index.rst +90 -0
  110. bapsf_motion-0.2.0b1/docs/notebooks/motion_list/exclusion_circular.ipynb +256 -0
  111. bapsf_motion-0.2.0b1/docs/notebooks/motion_list/exclusion_lapd_XY.ipynb +347 -0
  112. bapsf_motion-0.2.0b1/docs/notebooks/motion_list/motionlist.ipynb +371 -0
  113. bapsf_motion-0.2.0b1/docs/notebooks/transform/lapd_xy_transform.ipynb +1022 -0
  114. bapsf_motion-0.2.0b1/docs/robots.txt +6 -0
  115. bapsf_motion-0.2.0b1/docs/toml/index.rst +7 -0
  116. bapsf_motion-0.2.0b1/pyproject.toml +19 -0
  117. bapsf_motion-0.2.0b1/requirements/build.txt +5 -0
  118. bapsf_motion-0.2.0b1/requirements/docs.txt +27 -0
  119. bapsf_motion-0.2.0b1/requirements/extras.txt +5 -0
  120. bapsf_motion-0.2.0b1/requirements/gui.txt +6 -0
  121. bapsf_motion-0.2.0b1/requirements/install-32bit.txt +4 -0
  122. bapsf_motion-0.2.0b1/requirements/install.txt +12 -0
  123. bapsf_motion-0.2.0b1/requirements/tests.txt +4 -0
  124. bapsf_motion-0.2.0b1/requirements.txt +9 -0
  125. bapsf_motion-0.2.0b1/resources/README.md +2 -0
  126. bapsf_motion-0.2.0b1/resources/Remote module installation guide.pdf +0 -0
  127. bapsf_motion-0.2.0b1/setup.cfg +175 -0
  128. bapsf_motion-0.2.0b1/setup.py +13 -0
@@ -0,0 +1,10 @@
1
+ *.vi binary
2
+ *.vim binary
3
+ *.lvproj binary
4
+ *.lvclass binary
5
+ *.lvlps binary
6
+ *.aliases binary
7
+ *.lvlib binary
8
+ *.vit binary
9
+ *.ctl binary
10
+ *.ctt binary
@@ -0,0 +1,20 @@
1
+ # as per
2
+ # https://docs.github.com/en/code-security/supply-chain-security/enabling-and-disabling-version-updates
3
+ # configuration options
4
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+ #
6
+ version: 2
7
+ updates:
8
+
9
+ # Maintain dependencies for GitHub Actions
10
+ - package-ecosystem: "github-actions"
11
+ directory: "/"
12
+ reviewers:
13
+ - "rocco8773"
14
+ assignees:
15
+ - "rocco8773"
16
+ schedule:
17
+ interval: "weekly"
18
+ day: "monday"
19
+ # Check for npm updates at 4am PST
20
+ time: "23:00"
@@ -0,0 +1,48 @@
1
+ # This workflow will upload a Python Package using Twine when a release
2
+ # is created. For more information see:
3
+ #
4
+ # https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
5
+ #
6
+ # PyPI's instructions on creating a new project
7
+ # https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#configuring-trusted-publishing
8
+
9
+ # This workflow uses actions that are not certified by GitHub.
10
+ # They are provided by a third-party and are governed by
11
+ # separate terms of service, privacy policy, and support
12
+ # documentation.
13
+
14
+ name: Upload Python Package
15
+
16
+ on:
17
+ release:
18
+ types: [published]
19
+
20
+ permissions:
21
+ contents: read
22
+
23
+ jobs:
24
+ deploy:
25
+
26
+ runs-on: ubuntu-latest
27
+
28
+ environment:
29
+ name: pypi
30
+ url: https://pypi.org/p/bapsf_motion
31
+
32
+ permissions:
33
+ id-token: write
34
+
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - name: Set up Python
38
+ uses: actions/setup-python@v4
39
+ with:
40
+ python-version: 3.x
41
+ - name: Install dependencies
42
+ run: |
43
+ python -m pip install --upgrade pip
44
+ pip install build
45
+ - name: Build package
46
+ run: python -m build
47
+ - name: Publish package (to PyPI)
48
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,217 @@
1
+ name: Tests
2
+
3
+ on:
4
+ schedule:
5
+ # run every Sunday at 10:13 am UTC (3:13 am PT)
6
+ - cron: '13 10 * * 0'
7
+ push:
8
+ branches:
9
+ - main
10
+ tags:
11
+ - "v*"
12
+ pull_request:
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ # base-tests:
17
+ # name: py${{ matrix.python }} ${{ matrix.name-modifier }} - on ${{ matrix.os }}
18
+ # runs-on: ${{ matrix.os }}
19
+ #
20
+ # strategy:
21
+ # fail-fast: false
22
+ # matrix:
23
+ # include:
24
+ # # mark default
25
+ # - python: '3.10'
26
+ # os: ubuntu-latest
27
+ # do-coverage: false
28
+ # name-modifier: ''
29
+ #
30
+ # # mark case for coverage reporting
31
+ # - python: '3.7'
32
+ # os: ubuntu-latest
33
+ # do-coverage: true
34
+ # name-modifier: 'with Coverage'
35
+ # steps:
36
+ # - name: Checkout code
37
+ # uses: actions/checkout@v4
38
+ # with:
39
+ # fetch-depth: 0
40
+ # - name: Setup Python
41
+ # uses: actions/setup-python@v5
42
+ # with:
43
+ # python-version: ${{ matrix.python }}
44
+ # - name: Install 'bapsflib' dependencies
45
+ # run: python -m pip install -r requirements/tests.txt
46
+ # - name: Run tests ${{ matrix.name-modifier }}
47
+ # run: |
48
+ # if ${{ matrix.do-coverage }}; then
49
+ # coverage run -m unittest discover
50
+ # else
51
+ # python -m unittest discover
52
+ # fi
53
+ # shell: bash
54
+ # - name: Report coverage
55
+ # if: ${{ matrix.do-coverage && !failure() }}
56
+ # uses: codecov/codecov-action@v3.1.4
57
+ # with:
58
+ # token: ${{ secrets.CODECOV_TOKEN }}
59
+ # files: .coverage
60
+ # fail_ci_if_error: true
61
+ #
62
+ # tests:
63
+ # needs: base-tests
64
+ # name: py${{ matrix.python }} - on ${{ matrix.os }}
65
+ # runs-on: ${{ matrix.os }}
66
+ #
67
+ # strategy:
68
+ # fail-fast: false
69
+ # matrix:
70
+ # python: ['3.7', '3.8', '3.9', '3.10']
71
+ # os: [ubuntu-latest, macos-latest, windows-latest]
72
+ #
73
+ # exclude:
74
+ # # these were done in base-tests
75
+ # - python: '3.10'
76
+ # os: ubuntu-latest
77
+ # - python: '3.7'
78
+ # os: ubuntu-latest
79
+ #
80
+ # steps:
81
+ # - name: Checkout code
82
+ # uses: actions/checkout@v4
83
+ # with:
84
+ # fetch-depth: 0
85
+ # - name: Setup Python
86
+ # uses: actions/setup-python@v5
87
+ # with:
88
+ # python-version: ${{ matrix.python }}
89
+ # - name: Install 'bapsflib' dependencies
90
+ # run: python -m pip install -r requirements/tests.txt
91
+ # - name: Run tests
92
+ # run: |
93
+ # python -m unittest discover
94
+ # shell: bash
95
+ #
96
+ # test-mins:
97
+ # # test min versions of key dependencies
98
+ # needs: tests
99
+ # name: Min Vers | py-${{ matrix.python }} | ${{ matrix.spec-name }}
100
+ # runs-on: ubuntu-latest
101
+ #
102
+ # strategy:
103
+ # fail-fast: true
104
+ # matrix:
105
+ # include:
106
+ # - spec-name: h5py v3.0
107
+ # min-install: h5py==3.0
108
+ # python: '3.7'
109
+ #
110
+ # - spec-name: h5py v3.0 numpy v1.20
111
+ # min-install: h5py==3.0 numpy==1.20
112
+ # python: '3.7'
113
+ #
114
+ # steps:
115
+ # - name: Checkout code
116
+ # uses: actions/checkout@v4
117
+ # with:
118
+ # fetch-depth: 0
119
+ # - name: Setup Python
120
+ # uses: actions/setup-python@v5
121
+ # with:
122
+ # python-version: ${{ matrix.python }}
123
+ # - name: Install 'bapsflib' dependencies
124
+ # run: |
125
+ # python -m pip install -r requirements/tests.txt ${{ matrix.min-install }}
126
+ # - name: Run tests
127
+ # run: python -m unittest discover
128
+
129
+ import-bapsf_motion:
130
+ name: Importing bapsf_motion
131
+ # needs: base-tests
132
+ runs-on: ${{ matrix.os }}
133
+ strategy:
134
+ fail-fast: false
135
+ matrix:
136
+ python: [ '3.10', '3.11', '3.12' ]
137
+ os: [ubuntu-latest]
138
+ architecture: [x64]
139
+
140
+ include:
141
+ - python: '3.7'
142
+ os: windows-2019
143
+ architecture: x64
144
+
145
+ - python: '3.10'
146
+ os: windows-2019
147
+ architecture: x64
148
+
149
+ - python: '3.10'
150
+ os: windows-2019
151
+ architecture: x86
152
+
153
+ steps:
154
+ - name: Checkout code
155
+ uses: actions/checkout@v4
156
+ with:
157
+ fetch-depth: 0
158
+ - name: Set up Python
159
+ uses: actions/setup-python@v5
160
+ with:
161
+ python-version: ${{ matrix.python }}
162
+ architecture: ${{ matrix.architecture }}
163
+ - name: Install 'bapsf_motion' dependencies
164
+ if: ${{ matrix.architecture == 'x64' }}
165
+ run: |
166
+ python -m pip install -r requirements/gui.txt
167
+ - name: Install additional PySide6 dependencies [Linux Systems ONLY]
168
+ if: ${{ matrix.architecture == 'x64' && runner.os != 'Windows'}}
169
+ run: |
170
+ sudo apt update && sudo apt install -y libegl1-mesa-dev
171
+ - name: Install 'bapsf_motion' dependencies (32bit)
172
+ if: ${{ matrix.architecture == 'x86' }}
173
+ run: |
174
+ python -m pip install -r requirements/install-32bit.txt
175
+ - name: Import 'bapsf_motion'
176
+ run: |
177
+ python -c 'import bapsf_motion'
178
+ - name: Import 'bapsf_motion.gui'
179
+ if: ${{ matrix.architecture == 'x64' }}
180
+ run: |
181
+ python -c 'import bapsf_motion.gui'
182
+
183
+ build-bapsf_motion:
184
+ name: Packaging
185
+ runs-on: ubuntu-latest
186
+ needs:
187
+ # - test-mins
188
+ - import-bapsf_motion
189
+ steps:
190
+ - name: Checkout code
191
+ uses: actions/checkout@v4
192
+ - name: Get history and tags for SCM versioning to work
193
+ run: |
194
+ git fetch --prune --unshallow
195
+ git fetch --depth=1 origin +refs/tags/*:refs/tags/*
196
+ - name: Set up Python 3.10
197
+ uses: actions/setup-python@v5
198
+ with:
199
+ python-version: '3.10'
200
+ cache: pip
201
+ - name: Install requirements
202
+ run: |
203
+ pip install --progress-bar off --upgrade pip setuptools setuptools_scm twine build
204
+ pip install --progress-bar off -r requirements/install.txt
205
+ - name: Build a binary wheel
206
+ run: |
207
+ python -m build --wheel --outdir dist/
208
+ - name: Build a source tarball
209
+ run: |
210
+ python -m build --sdist --outdir dist/
211
+ - name: Twine check
212
+ run: |
213
+ twine check dist/*
214
+ - name: Install bapsf_motion in all variants
215
+ run: |
216
+ pip install --progress-bar off .[install]
217
+ pip install --progress-bar off -e .[install]
@@ -0,0 +1,151 @@
1
+ # LabView files
2
+ # https://labviewwiki.org/wiki/ALIASES_File_Extension
3
+ *.aliases
4
+ # https://labviewwiki.org/wiki/LVLPS_File_Extension
5
+ *.lvlps
6
+
7
+ # Byte-compiled / optimized / DLL files
8
+ __pycache__/
9
+ *.py[cod]
10
+ *$py.class
11
+ *.a
12
+ *.o
13
+ *.so
14
+ MANIFEST
15
+
16
+ # Ignore .c files by default to avoid including generated code. If you want to
17
+ # add a non-generated .c extension, use `git add -f filename.c`.
18
+ *.c
19
+
20
+ # Distribution / packaging
21
+ .Python
22
+ env/
23
+ build/
24
+ develop-eggs/
25
+ dist/
26
+ downloads/
27
+ eggs/
28
+ .eggs/
29
+ lib/
30
+ lib64/
31
+ parts/
32
+ sdist/
33
+ var/
34
+ wheels/
35
+ *.egg-info/
36
+ .installed.cfg
37
+ *.egg
38
+
39
+ # PyInstaller
40
+ # Usually these files are written by a python script from a template
41
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
42
+ *.manifest
43
+ *.spec
44
+
45
+ # Installer logs
46
+ pip-log.txt
47
+ pip-delete-this-directory.txt
48
+
49
+ # Unit test / coverage reports
50
+ htmlcov/
51
+ .tox/
52
+ .coverage
53
+ .coverage.*
54
+ .cache
55
+ nosetests.xml
56
+ coverage.xml
57
+ *,cover
58
+ .hypothesis/
59
+ .pytest_cache
60
+
61
+ # Translations
62
+ *.mo
63
+ *.pot
64
+
65
+ # Django stuff:
66
+ *.log
67
+ local_settings.py
68
+
69
+ # Flask stuff:
70
+ instance/
71
+ .webassets-cache
72
+
73
+ # Scrapy stuff:
74
+ .scrapy
75
+
76
+ # Sphinx documentation
77
+ docs/_build/
78
+ docs/api
79
+ docs/gen_modules
80
+
81
+ # PyBuilder
82
+ target/
83
+
84
+ # Jupyter Notebook
85
+ .ipynb_checkpoints
86
+ notebooks_for_proto
87
+
88
+ # pyenv
89
+ .python-version
90
+
91
+ # celery beat schedule file
92
+ celerybeat-schedule
93
+
94
+ # SageMath parsed files
95
+ *.sage.py
96
+
97
+ # dotenv
98
+ .env
99
+
100
+ # virtualenv
101
+ .venvs
102
+ .venv
103
+ venv/
104
+ venvs/
105
+ ENV/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+
110
+ # Rope project settings
111
+ .ropeproject
112
+
113
+ # VS code project settings
114
+ .vscode
115
+
116
+ # mkdocs documentation
117
+ /site
118
+
119
+ # Auxiliary files associated with emacs
120
+ *#
121
+ *~
122
+ *.#
123
+ .#*
124
+
125
+ # Auxilliary files associated with vim
126
+ *.swp
127
+ VIRTUAL/
128
+
129
+ # LaTeX and bibtex auxiliary files
130
+
131
+ *.aux
132
+ *.bbl
133
+ *.blg
134
+
135
+ # Miscellaneous files
136
+ .idea/
137
+ Untitled*
138
+ untitled*
139
+ *debuglog*
140
+ .DS_Store
141
+ */cython_version.py
142
+ .mypy_cache
143
+ *.tmp
144
+
145
+ # Documentation files
146
+ auto_examples
147
+
148
+ # Version file
149
+ plasmapy/version.py
150
+ tags
151
+ docs/notebooks/*.md
@@ -0,0 +1,23 @@
1
+ # Read the Docs configuration file
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html
3
+
4
+ version: 2
5
+
6
+ formats:
7
+ - htmlzip
8
+
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: '3.10'
13
+ apt_packages:
14
+ - graphviz
15
+
16
+ sphinx:
17
+ configuration: docs/conf.py
18
+
19
+ python:
20
+ install:
21
+ - requirements: requirements.txt
22
+ - method: pip
23
+ path: .
@@ -0,0 +1,140 @@
1
+ Metadata-Version: 2.1
2
+ Name: bapsf_motion
3
+ Version: 0.2.0b1
4
+ Summary: Package for controlling motion devices in a BaPSF DAQ system
5
+ Author: Basic Plasma Science Facility
6
+ Keywords: plasma physics,plasma,science,bapsf,motion
7
+ Classifier: Development Status :: 1 - Planning
8
+ Classifier: Intended Audience :: Science/Research
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.7
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Topic :: Scientific/Engineering :: Physics
17
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
18
+ Provides: bapsf_motion
19
+ Requires-Python: >=3.7
20
+ Description-Content-Type: text/markdown
21
+ Requires-Dist: astropy
22
+ Requires-Dist: importlib_metadata; python_version < "3.8"
23
+ Requires-Dist: matplotlib>=3.3.0
24
+ Requires-Dist: numpy>=1.18.1
25
+ Requires-Dist: numpydoc
26
+ Requires-Dist: tomli; python_version < "3.11"
27
+ Requires-Dist: tomli_w
28
+ Requires-Dist: tqdm
29
+ Requires-Dist: xarray
30
+ Provides-Extra: gui
31
+ Requires-Dist: PySide6; python_version >= "3.10" and extra == "gui"
32
+ Requires-Dist: PySide6<=6.3.1; python_version < "3.10" and extra == "gui"
33
+ Requires-Dist: qtawesome; extra == "gui"
34
+ Provides-Extra: tests
35
+ Requires-Dist: pytest>=5.1; extra == "tests"
36
+ Provides-Extra: 32bit
37
+ Requires-Dist: pandas<=2.0.3; extra == "32bit"
38
+ Provides-Extra: docs
39
+ Requires-Dist: docutils>=0.18.1; extra == "docs"
40
+ Requires-Dist: ipython; extra == "docs"
41
+ Requires-Dist: jinja2>=3.1.2; extra == "docs"
42
+ Requires-Dist: nbsphinx>=0.9.1; extra == "docs"
43
+ Requires-Dist: numpydoc>=1.5.0; extra == "docs"
44
+ Requires-Dist: pillow>=9.5.0; extra == "docs"
45
+ Requires-Dist: pygments>=2.15.0; extra == "docs"
46
+ Requires-Dist: sphinx>=6.1.3; extra == "docs"
47
+ Requires-Dist: sphinx-changelog>=1.3.0; extra == "docs"
48
+ Requires-Dist: sphinx-codeautolink>=0.15.0; extra == "docs"
49
+ Requires-Dist: sphinx-copybutton>=0.5.1; extra == "docs"
50
+ Requires-Dist: sphinx-gallery>=0.12.2; extra == "docs"
51
+ Requires-Dist: sphinx-hoverxref>=1.1.1; extra == "docs"
52
+ Requires-Dist: sphinx-issues>=3.0.1; extra == "docs"
53
+ Requires-Dist: sphinx-notfound-page>=0.8.3; extra == "docs"
54
+ Requires-Dist: sphinx-reredirects>=0.1.1; extra == "docs"
55
+ Requires-Dist: sphinx_rtd_theme>=1.2.0; extra == "docs"
56
+ Requires-Dist: sphinx_tabs>=3.4.1; extra == "docs"
57
+ Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "docs"
58
+ Requires-Dist: towncrier>=22.12; extra == "docs"
59
+ Requires-Dist: tox>=4.4.0; extra == "docs"
60
+ Requires-Dist: plasmapy_sphinx; extra == "docs"
61
+ Provides-Extra: extras
62
+ Requires-Dist: black; extra == "extras"
63
+ Requires-Dist: isort; extra == "extras"
64
+ Provides-Extra: developer
65
+ Requires-Dist: PySide6; python_version >= "3.10" and extra == "developer"
66
+ Requires-Dist: PySide6<=6.3.1; python_version < "3.10" and extra == "developer"
67
+ Requires-Dist: qtawesome; extra == "developer"
68
+ Requires-Dist: docutils>=0.18.1; extra == "developer"
69
+ Requires-Dist: ipython; extra == "developer"
70
+ Requires-Dist: jinja2>=3.1.2; extra == "developer"
71
+ Requires-Dist: nbsphinx>=0.9.1; extra == "developer"
72
+ Requires-Dist: numpydoc>=1.5.0; extra == "developer"
73
+ Requires-Dist: pillow>=9.5.0; extra == "developer"
74
+ Requires-Dist: pygments>=2.15.0; extra == "developer"
75
+ Requires-Dist: sphinx>=6.1.3; extra == "developer"
76
+ Requires-Dist: sphinx-changelog>=1.3.0; extra == "developer"
77
+ Requires-Dist: sphinx-codeautolink>=0.15.0; extra == "developer"
78
+ Requires-Dist: sphinx-copybutton>=0.5.1; extra == "developer"
79
+ Requires-Dist: sphinx-gallery>=0.12.2; extra == "developer"
80
+ Requires-Dist: sphinx-hoverxref>=1.1.1; extra == "developer"
81
+ Requires-Dist: sphinx-issues>=3.0.1; extra == "developer"
82
+ Requires-Dist: sphinx-notfound-page>=0.8.3; extra == "developer"
83
+ Requires-Dist: sphinx-reredirects>=0.1.1; extra == "developer"
84
+ Requires-Dist: sphinx_rtd_theme>=1.2.0; extra == "developer"
85
+ Requires-Dist: sphinx_tabs>=3.4.1; extra == "developer"
86
+ Requires-Dist: sphinxcontrib-bibtex>=2.5.0; extra == "developer"
87
+ Requires-Dist: towncrier>=22.12; extra == "developer"
88
+ Requires-Dist: tox>=4.4.0; extra == "developer"
89
+ Requires-Dist: plasmapy_sphinx; extra == "developer"
90
+ Requires-Dist: pytest>=5.1; extra == "developer"
91
+ Requires-Dist: black; extra == "developer"
92
+ Requires-Dist: isort; extra == "developer"
93
+
94
+ # bapsf_motion
95
+
96
+ [![Documentation Status](https://readthedocs.org/projects/bapsf-motion/badge/?version=latest)](https://bapsf-motion.readthedocs.io/en/latest/?badge=latest)
97
+
98
+ ``bapsf_motion`` is a module developed for the
99
+ [Basic Plasma Facility (BaPSF)](https://plasma.physics.ucla.edu/) at the
100
+ University of California, Los Angeles to integrate with its DAQ system
101
+ and control motion devices, such as probe drives.
102
+
103
+ ## GUI Development
104
+
105
+ This package uses ``PySide6`` to develop its GUI interface. In attempts
106
+ to keep the code pythonic, we are using the feature
107
+ [`from __feature__ import snake_case`](https://doc.qt.io/qtforpython/feature-why.html).
108
+ This will allow us to write code like `QMainWindow.set_window_title()`
109
+ instead of `QMainWindow.setWindowTitle()`. To get a module set up the
110
+ `__feature__` import must occur after the first `PySide6` import, for
111
+ example:
112
+
113
+ ```python
114
+ from PySide6.QtWidgets import QMainWindow
115
+
116
+ from __feature__ import snake_case # noqa
117
+ ```
118
+
119
+ Note the `# noqa`, this is needed to prevent linters and code inspection
120
+ from complaining about the import order.
121
+
122
+ When this is first implement your linters and code inspection will
123
+ likely complain with unresolved instances. This is because the
124
+ [Python stub files](https://peps.python.org/pep-0484/#stub-files)
125
+ (i.e. ``.pyi`` files) were generated without this feature enabled. To
126
+ update your stub files follow the procedure below:
127
+
128
+ 1. Determine where `PySide6` is installed. This can be done by
129
+ executing `python -m pip show pyside6` in the command prompt. This
130
+ show be the `site-packages` directory for you Python distribution.
131
+ 2. Navigate to the directory indicated by step 1.
132
+ 3. Navigate into the `PySide6/` directory.
133
+ 4. Now execute the following command in your command prompt:
134
+
135
+ ```bash
136
+ pyside6-genpyi all --feature snake_case
137
+ ```
138
+
139
+ This will update all the stub files accordingly, and should only take
140
+ a few seconds.
@@ -0,0 +1,47 @@
1
+ # bapsf_motion
2
+
3
+ [![Documentation Status](https://readthedocs.org/projects/bapsf-motion/badge/?version=latest)](https://bapsf-motion.readthedocs.io/en/latest/?badge=latest)
4
+
5
+ ``bapsf_motion`` is a module developed for the
6
+ [Basic Plasma Facility (BaPSF)](https://plasma.physics.ucla.edu/) at the
7
+ University of California, Los Angeles to integrate with its DAQ system
8
+ and control motion devices, such as probe drives.
9
+
10
+ ## GUI Development
11
+
12
+ This package uses ``PySide6`` to develop its GUI interface. In attempts
13
+ to keep the code pythonic, we are using the feature
14
+ [`from __feature__ import snake_case`](https://doc.qt.io/qtforpython/feature-why.html).
15
+ This will allow us to write code like `QMainWindow.set_window_title()`
16
+ instead of `QMainWindow.setWindowTitle()`. To get a module set up the
17
+ `__feature__` import must occur after the first `PySide6` import, for
18
+ example:
19
+
20
+ ```python
21
+ from PySide6.QtWidgets import QMainWindow
22
+
23
+ from __feature__ import snake_case # noqa
24
+ ```
25
+
26
+ Note the `# noqa`, this is needed to prevent linters and code inspection
27
+ from complaining about the import order.
28
+
29
+ When this is first implement your linters and code inspection will
30
+ likely complain with unresolved instances. This is because the
31
+ [Python stub files](https://peps.python.org/pep-0484/#stub-files)
32
+ (i.e. ``.pyi`` files) were generated without this feature enabled. To
33
+ update your stub files follow the procedure below:
34
+
35
+ 1. Determine where `PySide6` is installed. This can be done by
36
+ executing `python -m pip show pyside6` in the command prompt. This
37
+ show be the `site-packages` directory for you Python distribution.
38
+ 2. Navigate to the directory indicated by step 1.
39
+ 3. Navigate into the `PySide6/` directory.
40
+ 4. Now execute the following command in your command prompt:
41
+
42
+ ```bash
43
+ pyside6-genpyi all --feature snake_case
44
+ ```
45
+
46
+ This will update all the stub files accordingly, and should only take
47
+ a few seconds.