goad-py 0.3.0__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.

Potentially problematic release.


This version of goad-py might be problematic. Click here for more details.

Files changed (114) hide show
  1. goad_py-0.3.0/.github/workflows/python.yml +263 -0
  2. goad_py-0.3.0/.github/workflows/rust.yml +22 -0
  3. goad_py-0.3.0/.gitignore +13 -0
  4. goad_py-0.3.0/Cargo.lock +2055 -0
  5. goad_py-0.3.0/Cargo.toml +44 -0
  6. goad_py-0.3.0/LICENSE +674 -0
  7. goad_py-0.3.0/PKG-INFO +71 -0
  8. goad_py-0.3.0/README-python.md +42 -0
  9. goad_py-0.3.0/README.md +237 -0
  10. goad_py-0.3.0/blender/addon/__init__.py +236 -0
  11. goad_py-0.3.0/blender/addon/goad_py/__init__.py +5 -0
  12. goad_py-0.3.0/blender/addon.zip +0 -0
  13. goad_py-0.3.0/blender/build.sh +36 -0
  14. goad_py-0.3.0/blender/dev.blend +0 -0
  15. goad_py-0.3.0/config/default.toml +66 -0
  16. goad_py-0.3.0/config_editor.sh +202 -0
  17. goad_py-0.3.0/examples/clip.rs +34 -0
  18. goad_py-0.3.0/examples/clip_test.rs +41 -0
  19. goad_py-0.3.0/examples/data/8col.obj +356 -0
  20. goad_py-0.3.0/examples/data/clip_test.obj +74 -0
  21. goad_py-0.3.0/examples/data/concave1.obj +58 -0
  22. goad_py-0.3.0/examples/data/concave2.obj +124 -0
  23. goad_py-0.3.0/examples/data/cone.obj +168 -0
  24. goad_py-0.3.0/examples/data/cube.obj +38 -0
  25. goad_py-0.3.0/examples/data/cube2.obj +74 -0
  26. goad_py-0.3.0/examples/data/cube_inside_cube.obj +75 -0
  27. goad_py-0.3.0/examples/data/cube_inside_hex.obj +94 -0
  28. goad_py-0.3.0/examples/data/cube_inside_ico.obj +114 -0
  29. goad_py-0.3.0/examples/data/cubes.obj +218 -0
  30. goad_py-0.3.0/examples/data/hex.obj +59 -0
  31. goad_py-0.3.0/examples/data/hex2.obj +58 -0
  32. goad_py-0.3.0/examples/data/hex3.obj +58 -0
  33. goad_py-0.3.0/examples/data/hex4.obj +251 -0
  34. goad_py-0.3.0/examples/data/hex5.obj +58 -0
  35. goad_py-0.3.0/examples/data/hex6.obj +58 -0
  36. goad_py-0.3.0/examples/data/hex7.obj +58 -0
  37. goad_py-0.3.0/examples/data/hex_20_30_30.obj +28 -0
  38. goad_py-0.3.0/examples/data/hex_distort.obj +82 -0
  39. goad_py-0.3.0/examples/data/hex_hollow.obj +113 -0
  40. goad_py-0.3.0/examples/data/hex_indented.obj +92 -0
  41. goad_py-0.3.0/examples/data/icosphere1.obj +78 -0
  42. goad_py-0.3.0/examples/data/multiple.obj +115 -0
  43. goad_py-0.3.0/examples/data/multiple2.obj +114 -0
  44. goad_py-0.3.0/examples/data/multiple3.obj +114 -0
  45. goad_py-0.3.0/examples/data/octo.obj +74 -0
  46. goad_py-0.3.0/examples/data/octo2.obj +92 -0
  47. goad_py-0.3.0/examples/data/para.obj +38 -0
  48. goad_py-0.3.0/examples/data/para_rough1.obj +611 -0
  49. goad_py-0.3.0/examples/data/plane_xy.obj +14 -0
  50. goad_py-0.3.0/examples/data/plane_yz.obj +14 -0
  51. goad_py-0.3.0/examples/data/plate.obj +59 -0
  52. goad_py-0.3.0/examples/data/plate_distort.obj +82 -0
  53. goad_py-0.3.0/examples/diff-debug.rs +34 -0
  54. goad_py-0.3.0/examples/diff-test.rs +28 -0
  55. goad_py-0.3.0/examples/distortion.rs +48 -0
  56. goad_py-0.3.0/examples/multi-problem.rs +10 -0
  57. goad_py-0.3.0/examples/problem-diff.rs +23 -0
  58. goad_py-0.3.0/examples/problem1.rs +13 -0
  59. goad_py-0.3.0/examples/projection-debug.rs +36 -0
  60. goad_py-0.3.0/examples/projection1.rs +36 -0
  61. goad_py-0.3.0/examples/projection2.rs +41 -0
  62. goad_py-0.3.0/examples/projection_multi.rs +39 -0
  63. goad_py-0.3.0/examples/propagate-summation.rs +107 -0
  64. goad_py-0.3.0/examples/propagate.rs +97 -0
  65. goad_py-0.3.0/examples/remainder.rs +54 -0
  66. goad_py-0.3.0/examples/simplify.rs +25 -0
  67. goad_py-0.3.0/examples/vector_scale.rs +50 -0
  68. goad_py-0.3.0/goad-py/.gitignore +73 -0
  69. goad_py-0.3.0/goad-py/CLAUDE.md +125 -0
  70. goad_py-0.3.0/goad-py/Cargo.toml +17 -0
  71. goad_py-0.3.0/goad-py/DISTRIBUTION.md +157 -0
  72. goad_py-0.3.0/goad-py/README-python.md +42 -0
  73. goad_py-0.3.0/goad-py/build_and_test.sh +46 -0
  74. goad_py-0.3.0/goad-py/build_wheels_local.sh +75 -0
  75. goad_py-0.3.0/goad-py/convergence.py +382 -0
  76. goad_py-0.3.0/goad-py/convergence_example.py +33 -0
  77. goad_py-0.3.0/goad-py/goad_py.pyi +345 -0
  78. goad_py-0.3.0/goad-py/multiproblem_example.py +137 -0
  79. goad_py-0.3.0/goad-py/publish_test.sh +74 -0
  80. goad_py-0.3.0/goad-py/release.sh +157 -0
  81. goad_py-0.3.0/goad-py/simple_example.py +59 -0
  82. goad_py-0.3.0/goad-py/src/lib.rs +85 -0
  83. goad_py-0.3.0/goad-py/test_wheels.sh +155 -0
  84. goad_py-0.3.0/pyproject.toml +40 -0
  85. goad_py-0.3.0/setup.sh +282 -0
  86. goad_py-0.3.0/src/_quickstart.rs +71 -0
  87. goad_py-0.3.0/src/beam.rs +646 -0
  88. goad_py-0.3.0/src/bins.rs +239 -0
  89. goad_py-0.3.0/src/clip.rs +351 -0
  90. goad_py-0.3.0/src/containment.rs +43 -0
  91. goad_py-0.3.0/src/diff.rs +468 -0
  92. goad_py-0.3.0/src/distortion.rs +289 -0
  93. goad_py-0.3.0/src/field.rs +147 -0
  94. goad_py-0.3.0/src/fresnel.rs +47 -0
  95. goad_py-0.3.0/src/geom.rs +1524 -0
  96. goad_py-0.3.0/src/helpers.rs +101 -0
  97. goad_py-0.3.0/src/lib.rs +30 -0
  98. goad_py-0.3.0/src/main.rs +13 -0
  99. goad_py-0.3.0/src/multiproblem.rs +399 -0
  100. goad_py-0.3.0/src/orientation.rs +321 -0
  101. goad_py-0.3.0/src/output.rs +322 -0
  102. goad_py-0.3.0/src/params.rs +18 -0
  103. goad_py-0.3.0/src/powers.rs +120 -0
  104. goad_py-0.3.0/src/problem.rs +610 -0
  105. goad_py-0.3.0/src/result.rs +375 -0
  106. goad_py-0.3.0/src/settings.rs +831 -0
  107. goad_py-0.3.0/src/snell.rs +91 -0
  108. goad_py-0.3.0/template/custom_bins.toml +6 -0
  109. goad_py-0.3.0/template/goad_pbs.sh +34 -0
  110. goad_py-0.3.0/tests/fixed_orientation_tests.rs +66 -0
  111. goad_py-0.3.0/tests/helpers.rs +58 -0
  112. goad_py-0.3.0/tests/test_data/fixed_hex_30_20_20_mueller_scatgrid +361 -0
  113. goad_py-0.3.0/tests/test_data/fixed_hex_30_30_30_mueller_scatgrid +361 -0
  114. goad_py-0.3.0/tests/test_data/hex.obj +59 -0
@@ -0,0 +1,263 @@
1
+ # This file is autogenerated by maturin v1.8.2
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: CI
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - main
12
+ - master
13
+ tags:
14
+ - '*'
15
+ pull_request:
16
+ workflow_dispatch:
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ linux:
23
+ runs-on: ${{ matrix.platform.runner }}
24
+ strategy:
25
+ matrix:
26
+ platform:
27
+ - runner: ubuntu-22.04
28
+ target: x86_64
29
+ - runner: ubuntu-22.04
30
+ target: x86
31
+ - runner: ubuntu-22.04
32
+ target: aarch64
33
+ - runner: ubuntu-22.04
34
+ target: ppc64le
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - uses: actions/setup-python@v5
38
+ with:
39
+ python-version: 3.x
40
+ - name: Build wheels
41
+ uses: PyO3/maturin-action@v1
42
+ with:
43
+ target: ${{ matrix.platform.target }}
44
+ args: --release --out dist --find-interpreter
45
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
46
+ manylinux: auto
47
+ working-directory: goad-py
48
+ env:
49
+ CXXFLAGS: -std=c++11
50
+ CFLAGS: -std=c11
51
+ - name: Upload wheels
52
+ uses: actions/upload-artifact@v4
53
+ with:
54
+ name: wheels-linux-${{ matrix.platform.target }}
55
+ path: goad-py/dist
56
+
57
+ musllinux:
58
+ runs-on: ${{ matrix.platform.runner }}
59
+ strategy:
60
+ matrix:
61
+ platform:
62
+ - runner: ubuntu-22.04
63
+ target: x86_64
64
+ - runner: ubuntu-22.04
65
+ target: x86
66
+ - runner: ubuntu-22.04
67
+ target: aarch64
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+ - uses: actions/setup-python@v5
71
+ with:
72
+ python-version: 3.x
73
+ - name: Build wheels
74
+ uses: PyO3/maturin-action@v1
75
+ with:
76
+ target: ${{ matrix.platform.target }}
77
+ args: --release --out dist --find-interpreter
78
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
79
+ manylinux: musllinux_1_2
80
+ working-directory: goad-py
81
+ env:
82
+ CXXFLAGS: -std=c++11
83
+ CFLAGS: -std=c11
84
+ - name: Upload wheels
85
+ uses: actions/upload-artifact@v4
86
+ with:
87
+ name: wheels-musllinux-${{ matrix.platform.target }}
88
+ path: goad-py/dist
89
+
90
+ windows:
91
+ runs-on: ${{ matrix.platform.runner }}
92
+ strategy:
93
+ matrix:
94
+ platform:
95
+ - runner: windows-latest
96
+ target: x64
97
+ steps:
98
+ - uses: actions/checkout@v4
99
+ - uses: actions/setup-python@v5
100
+ with:
101
+ python-version: 3.x
102
+ architecture: ${{ matrix.platform.target }}
103
+ - name: Build wheels
104
+ uses: PyO3/maturin-action@v1
105
+ with:
106
+ target: ${{ matrix.platform.target }}
107
+ args: --release --out dist --find-interpreter
108
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
109
+ working-directory: goad-py
110
+ - name: Upload wheels
111
+ uses: actions/upload-artifact@v4
112
+ with:
113
+ name: wheels-windows-${{ matrix.platform.target }}
114
+ path: goad-py/dist
115
+
116
+ macos:
117
+ runs-on: ${{ matrix.platform.runner }}
118
+ strategy:
119
+ matrix:
120
+ platform:
121
+ - runner: macos-13
122
+ target: x86_64
123
+ - runner: macos-14
124
+ target: aarch64
125
+ steps:
126
+ - uses: actions/checkout@v4
127
+ - uses: actions/setup-python@v5
128
+ with:
129
+ python-version: 3.x
130
+ - name: Build wheels
131
+ uses: PyO3/maturin-action@v1
132
+ with:
133
+ target: ${{ matrix.platform.target }}
134
+ args: --release --out dist --find-interpreter
135
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
136
+ working-directory: goad-py
137
+ - name: Upload wheels
138
+ uses: actions/upload-artifact@v4
139
+ with:
140
+ name: wheels-macos-${{ matrix.platform.target }}
141
+ path: goad-py/dist
142
+
143
+ sdist:
144
+ runs-on: ubuntu-latest
145
+ steps:
146
+ - uses: actions/checkout@v4
147
+ - name: Build sdist
148
+ uses: PyO3/maturin-action@v1
149
+ with:
150
+ command: sdist
151
+ args: --out dist
152
+ working-directory: goad-py
153
+ - name: Upload sdist
154
+ uses: actions/upload-artifact@v4
155
+ with:
156
+ name: wheels-sdist
157
+ path: goad-py/dist
158
+
159
+ test:
160
+ name: Test wheels
161
+ needs: [linux, musllinux, windows, macos, sdist]
162
+ runs-on: ${{ matrix.os }}
163
+ strategy:
164
+ matrix:
165
+ os: [ubuntu-latest, windows-latest, macos-latest]
166
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
167
+ steps:
168
+ - uses: actions/checkout@v4
169
+ - uses: actions/setup-python@v5
170
+ with:
171
+ python-version: ${{ matrix.python-version }}
172
+ - name: Download all artifacts
173
+ uses: actions/download-artifact@v4
174
+ with:
175
+ pattern: wheels-*
176
+ merge-multiple: true
177
+ - name: Debug artifact structure
178
+ shell: bash
179
+ run: |
180
+ echo "Current directory:"
181
+ pwd
182
+ echo "Directory contents:"
183
+ ls -la
184
+ echo "Checking if dist exists:"
185
+ if [ -d "dist" ]; then
186
+ echo "dist/ exists"
187
+ ls -la dist/
188
+ else
189
+ echo "dist/ does not exist"
190
+ fi
191
+ - name: List downloaded wheels
192
+ shell: bash
193
+ run: |
194
+ echo "Looking for wheel files in current directory:"
195
+ find . -name "*.whl" -type f
196
+ echo "All files in current directory:"
197
+ ls -la
198
+ - name: Install wheel
199
+ shell: bash
200
+ run: |
201
+ pip install --upgrade pip
202
+ pip install goad-py --find-links . --force-reinstall
203
+ - name: Run import test
204
+ run: |
205
+ python -c "import goad_py; print('✓ Import successful')"
206
+ python -c "import goad_py; print('Version:', getattr(goad_py, '__version__', 'No version attr'))"
207
+
208
+ test-pypi:
209
+ name: Publish to TestPyPI
210
+ runs-on: ubuntu-latest
211
+ if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
212
+ needs: [linux, musllinux, windows, macos, sdist, test]
213
+ environment:
214
+ name: testpypi
215
+ url: https://test.pypi.org/p/goad-py
216
+ permissions:
217
+ id-token: write
218
+ steps:
219
+ - uses: actions/download-artifact@v4
220
+ with:
221
+ pattern: wheels-*
222
+ merge-multiple: true
223
+ path: dist
224
+ - name: Publish to TestPyPI
225
+ uses: PyO3/maturin-action@v1
226
+ with:
227
+ command: upload
228
+ args: --repository-url=https://test.pypi.org/legacy/ --skip-existing dist/*
229
+ env:
230
+ MATURIN_PYPI_TOKEN: ${{ secrets.TEST_PYPI_API_TOKEN }}
231
+
232
+ release:
233
+ name: Release to PyPI
234
+ runs-on: ubuntu-latest
235
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
236
+ needs: [linux, musllinux, windows, macos, sdist, test]
237
+ environment:
238
+ name: pypi
239
+ url: https://pypi.org/p/goad-py
240
+ permissions:
241
+ # Use to sign the release artifacts
242
+ id-token: write
243
+ # Used to upload release artifacts
244
+ contents: write
245
+ # Used to generate artifact attestation
246
+ attestations: write
247
+ steps:
248
+ - uses: actions/download-artifact@v4
249
+ with:
250
+ pattern: wheels-*
251
+ merge-multiple: true
252
+ path: dist
253
+ - name: Generate artifact attestation
254
+ uses: actions/attest-build-provenance@v1
255
+ with:
256
+ subject-path: 'dist/*'
257
+ - name: Publish to PyPI
258
+ uses: PyO3/maturin-action@v1
259
+ with:
260
+ command: upload
261
+ args: --skip-existing dist/*
262
+ env:
263
+ MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,22 @@
1
+ name: Rust
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ env:
10
+ CARGO_TERM_COLOR: always
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - name: Build
20
+ run: cargo build --verbose
21
+ - name: Run tests
22
+ run: cargo test --verbose
@@ -0,0 +1,13 @@
1
+ /target
2
+ **.mtl
3
+ **.txt
4
+ mueller_scatgrid**
5
+ config/local.toml
6
+ **/__pycache__/
7
+ **.so
8
+ **.blend
9
+ **/.env/
10
+ log**
11
+ goad-py/.env
12
+ goad_run/
13
+ **.vscode/