pyopencl 2024.2.1__tar.gz → 2024.2.4__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 pyopencl might be problematic. Click here for more details.

Files changed (155) hide show
  1. pyopencl-2024.2.4/.ci/hack-intel-cl-into-conda-env.sh +4 -0
  2. pyopencl-2024.2.4/.editorconfig +32 -0
  3. pyopencl-2024.2.4/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  4. pyopencl-2024.2.4/.github/ISSUE_TEMPLATE/config.yml +8 -0
  5. pyopencl-2024.2.4/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. pyopencl-2024.2.4/.github/dependabot.yml +9 -0
  7. pyopencl-2024.2.4/.github/workflows/autopush.yml +21 -0
  8. pyopencl-2024.2.4/.github/workflows/ci.yml +187 -0
  9. pyopencl-2024.2.4/.github/workflows/wheels.yml +83 -0
  10. pyopencl-2024.2.4/.gitignore +77 -0
  11. pyopencl-2024.2.4/.gitlab-ci.yml +254 -0
  12. pyopencl-2024.2.4/.gitmodules +3 -0
  13. pyopencl-2024.2.4/.pylintrc-local.yml +7 -0
  14. pyopencl-2024.2.4/.test-conda-env-py3.yml +13 -0
  15. pyopencl-2024.2.4/CMakeLists.txt +221 -0
  16. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/PKG-INFO +13 -13
  17. pyopencl-2024.2.4/TODOs +17 -0
  18. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/contrib/cldis.py +1 -1
  19. pyopencl-2024.2.4/contrib/fortran-to-opencl/setup.cfg +8 -0
  20. pyopencl-2024.2.4/doc/.gitignore +1 -0
  21. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/misc.rst +32 -10
  22. pyopencl-2024.2.4/doc/upload-docs.sh +3 -0
  23. pyopencl-2024.2.4/examples/.gitignore +1 -0
  24. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/__init__.py +16 -4
  25. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/algorithm.py +3 -1
  26. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/bitonic_sort.py +2 -0
  27. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/characterize/__init__.py +23 -0
  28. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/tools.py +60 -56
  29. pyopencl-2024.2.4/pyopencl/version.py +7 -0
  30. pyopencl-2024.2.4/pyproject.toml +97 -0
  31. pyopencl-2024.2.4/run-mypy.sh +3 -0
  32. pyopencl-2024.2.4/run-pylint.sh +23 -0
  33. pyopencl-2024.2.4/scripts/build-ocl-macos.sh +18 -0
  34. pyopencl-2024.2.4/scripts/build-ocl-windows.sh +22 -0
  35. pyopencl-2024.2.4/scripts/build-ocl.sh +23 -0
  36. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/setup.cfg +15 -14
  37. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/mempool.hpp +14 -3
  38. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_cl.cpp +16 -0
  39. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_cl.hpp +13 -14
  40. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_cl_part_1.cpp +12 -2
  41. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_cl_part_2.cpp +1 -1
  42. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_helpers.hpp +2 -1
  43. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_mempool.cpp +53 -26
  44. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_algorithm.py +2 -2
  45. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_array.py +13 -3
  46. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_wrapper.py +16 -1
  47. pyopencl-2024.2.1/CMakeLists.txt +0 -83
  48. pyopencl-2024.2.1/Makefile.in +0 -21
  49. pyopencl-2024.2.1/README_SETUP.txt +0 -34
  50. pyopencl-2024.2.1/aksetup_helper.py +0 -1013
  51. pyopencl-2024.2.1/configure.py +0 -6
  52. pyopencl-2024.2.1/pyopencl/compyte/array.py +0 -214
  53. pyopencl-2024.2.1/pyopencl/compyte/dtypes.py +0 -290
  54. pyopencl-2024.2.1/pyopencl/compyte/ndarray/__init__.py +0 -0
  55. pyopencl-2024.2.1/pyopencl/compyte/ndarray/gen_elemwise.py +0 -1907
  56. pyopencl-2024.2.1/pyopencl/compyte/ndarray/gen_reduction.py +0 -1511
  57. pyopencl-2024.2.1/pyopencl/compyte/ndarray/setup_opencl.py +0 -101
  58. pyopencl-2024.2.1/pyopencl/compyte/ndarray/test_gpu_elemwise.py +0 -411
  59. pyopencl-2024.2.1/pyopencl/compyte/ndarray/test_gpu_ndarray.py +0 -487
  60. pyopencl-2024.2.1/pyopencl/version.py +0 -3
  61. pyopencl-2024.2.1/pyopencl.egg-info/PKG-INFO +0 -105
  62. pyopencl-2024.2.1/pyopencl.egg-info/SOURCES.txt +0 -127
  63. pyopencl-2024.2.1/pyopencl.egg-info/dependency_links.txt +0 -1
  64. pyopencl-2024.2.1/pyopencl.egg-info/not-zip-safe +0 -1
  65. pyopencl-2024.2.1/pyopencl.egg-info/requires.txt +0 -16
  66. pyopencl-2024.2.1/pyopencl.egg-info/top_level.txt +0 -1
  67. pyopencl-2024.2.1/pyproject.toml +0 -55
  68. pyopencl-2024.2.1/setup.py +0 -239
  69. /pyopencl-2024.2.1/pyopencl/compyte/__init__.py → /pyopencl-2024.2.4/.conda-ci-build-configure.sh +0 -0
  70. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/CITATION.cff +0 -0
  71. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/LICENSE +0 -0
  72. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/MANIFEST.in +0 -0
  73. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/README.rst +0 -0
  74. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/contrib/fortran-to-opencl/README +0 -0
  75. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/contrib/fortran-to-opencl/translate.py +0 -0
  76. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/contrib/pyopencl.vim +0 -0
  77. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/Makefile +0 -0
  78. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/algorithm.rst +0 -0
  79. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/array.rst +0 -0
  80. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/conf.py +0 -0
  81. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/howto.rst +0 -0
  82. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/index.rst +0 -0
  83. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/make_constants.py +0 -0
  84. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime.rst +0 -0
  85. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_const.rst +0 -0
  86. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_gl.rst +0 -0
  87. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_memory.rst +0 -0
  88. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_platform.rst +0 -0
  89. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_program.rst +0 -0
  90. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/runtime_queue.rst +0 -0
  91. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/subst.rst +0 -0
  92. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/tools.rst +0 -0
  93. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/doc/types.rst +0 -0
  94. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/black-hole-accretion.py +0 -0
  95. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo-struct-reduce.py +0 -0
  96. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo.py +0 -0
  97. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_array.py +0 -0
  98. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_array_svm.py +0 -0
  99. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_elementwise.py +0 -0
  100. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_elementwise_complex.py +0 -0
  101. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_mandelbrot.py +0 -0
  102. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_meta_codepy.py +0 -0
  103. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/demo_meta_template.py +0 -0
  104. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/dump-performance.py +0 -0
  105. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/dump-properties.py +0 -0
  106. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/gl_interop_demo.py +0 -0
  107. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/gl_particle_animation.py +0 -0
  108. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/ipython-demo.ipynb +0 -0
  109. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/median-filter.py +0 -0
  110. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/n-body.py +0 -0
  111. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/narray.py +0 -0
  112. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/noisyImage.jpg +0 -0
  113. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/pi-monte-carlo.py +0 -0
  114. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/svm.py +0 -0
  115. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/examples/transpose.py +0 -0
  116. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/_cluda.py +0 -0
  117. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/_mymako.py +0 -0
  118. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/array.py +0 -0
  119. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/bitonic_sort_templates.py +0 -0
  120. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cache.py +0 -0
  121. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/capture_call.py +0 -0
  122. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/characterize/performance.py +0 -0
  123. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-airy.cl +0 -0
  124. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-bessel-j-complex.cl +0 -0
  125. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-bessel-j.cl +0 -0
  126. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-bessel-y.cl +0 -0
  127. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-complex.h +0 -0
  128. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-eval-tbl.cl +0 -0
  129. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-hankel-complex.cl +0 -0
  130. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-random123/array.h +0 -0
  131. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-random123/openclfeatures.h +0 -0
  132. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-random123/philox.cl +0 -0
  133. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cl/pyopencl-random123/threefry.cl +0 -0
  134. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/clmath.py +0 -0
  135. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/clrandom.py +0 -0
  136. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/cltypes.py +0 -0
  137. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/elementwise.py +0 -0
  138. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/invoker.py +0 -0
  139. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/ipython_ext.py +0 -0
  140. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/reduction.py +0 -0
  141. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pyopencl/scan.py +0 -0
  142. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/pytest.ini +0 -0
  143. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/bitlog.cpp +0 -0
  144. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/bitlog.hpp +0 -0
  145. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/clinfo_ext.h +0 -0
  146. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/pyopencl_ext.h +0 -0
  147. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/tools.hpp +0 -0
  148. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/src/wrap_constants.cpp +0 -0
  149. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/add-vectors-32.spv +0 -0
  150. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/add-vectors-64.spv +0 -0
  151. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/empty-header.h +0 -0
  152. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_arrays_in_structs.py +0 -0
  153. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_clmath.py +0 -0
  154. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_clrandom.py +0 -0
  155. {pyopencl-2024.2.1 → pyopencl-2024.2.4}/test/test_enqueue_copy.py +0 -0
@@ -0,0 +1,4 @@
1
+ #! /bin/bash
2
+
3
+ # https://github.com/conda-forge/intel-compiler-repack-feedstock/issues/7
4
+ sed -i 's/- pocl/- intel-opencl-rt!=2022.2/g' "$CONDA_ENVIRONMENT"
@@ -0,0 +1,32 @@
1
+ # https://editorconfig.org/
2
+ # https://github.com/editorconfig/editorconfig-vim
3
+ # https://github.com/editorconfig/editorconfig-emacs
4
+
5
+ root = true
6
+
7
+ [*]
8
+ indent_style = space
9
+ end_of_line = lf
10
+ charset = utf-8
11
+ trim_trailing_whitespace = true
12
+ insert_final_newline = true
13
+
14
+ [*.py]
15
+ indent_size = 4
16
+
17
+ [*.rst]
18
+ indent_size = 4
19
+
20
+ [*.cpp]
21
+ indent_size = 2
22
+
23
+ [*.hpp]
24
+ indent_size = 2
25
+
26
+ # There may be one in doc/
27
+ [Makefile]
28
+ indent_style = tab
29
+
30
+ # https://github.com/microsoft/vscode/issues/1679
31
+ [*.md]
32
+ trim_trailing_whitespace = false
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Environment (please complete the following information):**
24
+ - OS: [e.g. Linux]
25
+ - ICD Loader and version: [e.g. ocl-icd 2.3.1]
26
+ - ICD and version: [e.g. pocl 1.8]
27
+ - CPU/GPU: [e.g. Nvidia Titan V]
28
+ - Python version: [e.g. 3.10]
29
+ - PyOpenCL version: [e.g. 2021.1]
30
+
31
+ **Additional context**
32
+ Add any other context about the problem here.
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: ❓ Question
4
+ url: https://github.com/inducer/pyopencl/discussions/categories/q-a
5
+ about: Ask and answer questions about PyOpenCL on Discussions
6
+ - name: 🔧 Troubleshooting
7
+ url: https://github.com/inducer/pyopencl/discussions/categories/troubleshooting
8
+ about: For troubleshooting help, see the Discussions
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,9 @@
1
+ version: 2
2
+ updates:
3
+ # Set update schedule for GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "weekly"
8
+
9
+ # vim: sw=4
@@ -0,0 +1,21 @@
1
+ name: Gitlab mirror
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+
7
+ jobs:
8
+ autopush:
9
+ name: Automatic push to gitlab.tiker.net
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - run: |
14
+ mkdir ~/.ssh && echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
15
+ eval $(ssh-agent) && echo "$GITLAB_AUTOPUSH_KEY" | ssh-add -
16
+ git fetch --unshallow
17
+ git push "git@gitlab.tiker.net:inducer/$(basename $GITHUB_REPOSITORY).git" main
18
+ env:
19
+ GITLAB_AUTOPUSH_KEY: ${{ secrets.GITLAB_AUTOPUSH_KEY }}
20
+
21
+ # vim: sw=4
@@ -0,0 +1,187 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ tags:
7
+ - v*
8
+ pull_request:
9
+ schedule:
10
+ - cron: '17 3 * * 0'
11
+
12
+ jobs:
13
+ flake8:
14
+ name: Flake8
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ -
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ # matches compat target in setup.py
22
+ python-version: '3.8'
23
+ - name: "Main Script"
24
+ run: |
25
+ curl -L -O https://tiker.net/ci-support-v0
26
+ . ci-support-v0
27
+ install_and_run_flake8 "$(get_proj_name)" examples/*.py test/*.py
28
+
29
+ pylint:
30
+ name: Pylint
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - name: "Main Script"
35
+ run: |
36
+ CONDA_ENVIRONMENT=.test-conda-env-py3.yml
37
+ echo "- matplotlib" >> $CONDA_ENVIRONMENT
38
+ echo "- pyopengl" >> $CONDA_ENVIRONMENT
39
+ echo "- ipython" >> $CONDA_ENVIRONMENT
40
+
41
+ curl -L -O https://tiker.net/ci-support-v0
42
+ . ci-support-v0
43
+ build_py_project_in_conda_env
44
+
45
+ # Avoid linting local directory, where native module
46
+ # cannot be imported.
47
+ rm -Rf "$(get_proj_name)"
48
+
49
+ run_pylint "$(get_proj_name)" test/*.py
50
+
51
+ mypy:
52
+ name: Mypy
53
+ runs-on: ubuntu-latest
54
+ steps:
55
+ - uses: actions/checkout@v4
56
+ - name: "Main Script"
57
+ run: |
58
+ curl -L -O https://tiker.net/ci-support-v0
59
+ . ci-support-v0
60
+ export CL_USE_SHIPPED_EXT=on
61
+ build_py_project_in_conda_env
62
+
63
+ python -m pip install mypy importlib-resources
64
+ ./run-mypy.sh
65
+
66
+ pytest:
67
+ name: Pytest Linux POCL
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - name: "Main Script"
72
+ run: |
73
+ curl -L -O https://tiker.net/ci-support-v0
74
+ . ci-support-v0
75
+ export CL_USE_SHIPPED_EXT=on
76
+ build_py_project_in_conda_env
77
+ test_py_project
78
+
79
+ pytest_intel:
80
+ name: Pytest Linux Intel CL
81
+ runs-on: ubuntu-latest
82
+ steps:
83
+ - uses: actions/checkout@v4
84
+ - name: "Main Script"
85
+ run: |
86
+ export CONDA_ENVIRONMENT=.test-conda-env-py3.yml
87
+ .ci/hack-intel-cl-into-conda-env.sh
88
+
89
+ curl -L -O https://tiker.net/ci-support-v0
90
+ . ci-support-v0
91
+ export CL_USE_SHIPPED_EXT=on
92
+ build_py_project_in_conda_env
93
+ test_py_project
94
+
95
+ pytest_win:
96
+ name: Pytest Windows Intel CL
97
+ runs-on: windows-latest
98
+ steps:
99
+ - uses: actions/checkout@v4
100
+ - name: "Main Script"
101
+ shell: bash
102
+ run: |
103
+ set -x
104
+ export CONDA_ENVIRONMENT=.test-conda-env-py3.yml
105
+
106
+ sed -i 's/- ocl-icd/- khronos-opencl-icd-loader/g' "$CONDA_ENVIRONMENT"
107
+ sed -i '/- git/d' "$CONDA_ENVIRONMENT"
108
+
109
+ .ci/hack-intel-cl-into-conda-env.sh
110
+
111
+ curl -L -O https://tiker.net/ci-support-v0
112
+ . ci-support-v0
113
+ export CL_USE_SHIPPED_EXT=on
114
+ build_py_project_in_conda_env
115
+ test_py_project
116
+
117
+ pytest_mac:
118
+ name: Pytest Mac POCL
119
+ runs-on: macos-latest
120
+ steps:
121
+ - uses: actions/checkout@v4
122
+ - name: "Main Script"
123
+ run: |
124
+ export CC=gcc
125
+ CONDA_ENVIRONMENT=.test-conda-env.yml
126
+ grep -v ocl-icd .test-conda-env-py3.yml > $CONDA_ENVIRONMENT
127
+
128
+ curl -L -O https://tiker.net/ci-support-v0
129
+ . ci-support-v0
130
+ build_py_project_in_conda_env
131
+ test_py_project
132
+
133
+ docs:
134
+ name: Documentation
135
+ runs-on: ubuntu-latest
136
+ steps:
137
+ - uses: actions/checkout@v4
138
+ -
139
+ uses: actions/setup-python@v5
140
+ with:
141
+ python-version: '3.x'
142
+ - name: "Main Script"
143
+ run: |
144
+ CONDA_ENVIRONMENT=.test-conda-env-py3.yml
145
+
146
+ curl -L -O https://tiker.net/ci-support-v0
147
+ . ci-support-v0
148
+ export CL_USE_SHIPPED_EXT=on
149
+ build_py_project_in_conda_env
150
+ build_docs
151
+
152
+ examples:
153
+ name: Examples
154
+ runs-on: ubuntu-latest
155
+ steps:
156
+ - uses: actions/checkout@v4
157
+ - name: "Main Script"
158
+ run: |
159
+ EXTRA_INSTALL="pillow cgen mako imageio"
160
+
161
+ curl -L -O https://tiker.net/ci-support-v0
162
+ . ci-support-v0
163
+ build_py_project_in_conda_env
164
+ (cd examples; rm -f gl_*)
165
+ run_examples --no-require-main
166
+
167
+ downstream_tests:
168
+ strategy:
169
+ matrix:
170
+ downstream_project: [loopy, boxtree, meshmode]
171
+ name: Tests for downstream project ${{ matrix.downstream_project }}
172
+ runs-on: ubuntu-latest
173
+ steps:
174
+ - uses: actions/checkout@v4
175
+ - name: "Main Script"
176
+ env:
177
+ DOWNSTREAM_PROJECT: ${{ matrix.downstream_project }}
178
+ run: |
179
+ curl -L -O https://tiker.net/ci-support-v0
180
+ . ci-support-v0
181
+
182
+ prepare_downstream_build "https://github.com/inducer/$DOWNSTREAM_PROJECT.git"
183
+ sed -i 's/pyopencl/ocl-icd/' .test-conda-env-py3.yml
184
+ build_py_project_in_conda_env
185
+ test_py_project
186
+
187
+ # vim: sw=4
@@ -0,0 +1,83 @@
1
+ name: Build and upload to PyPI
2
+
3
+ # Build on every branch push, tag push, and pull request change:
4
+ on:
5
+ push:
6
+ branches:
7
+ - main
8
+ tags:
9
+ - v*
10
+ pull_request:
11
+ schedule:
12
+ - cron: '17 3 * * 0'
13
+
14
+ jobs:
15
+ build_wheels:
16
+ name: Build wheels on ${{ matrix.os }}
17
+ runs-on: ${{ matrix.os }}
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ os: [ubuntu-20.04, windows-2019, macos-11]
22
+
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ with:
26
+ submodules: 'true'
27
+
28
+ - uses: actions/setup-python@v5
29
+ with:
30
+ python-version: '3.x'
31
+
32
+ - name: Install cibuildwheel
33
+ run: python -m pip install cibuildwheel==2.17.0
34
+
35
+ - name: Build wheels
36
+ shell: bash
37
+ run: |
38
+ set -x
39
+ if [[ "${{ matrix.os }}" == "windows-2019" ]]; then
40
+ export CL_INC_DIR="D:/a/pyopencl/pyopencl/OpenCL-Headers/install/include"
41
+ export CL_LIB_DIR="C:/Program Files/OpenCL-ICD-Loader/lib"
42
+ fi
43
+ python -m cibuildwheel --output-dir wheelhouse
44
+
45
+ - uses: actions/upload-artifact@v4
46
+ with:
47
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
48
+ path: ./wheelhouse/*.whl
49
+
50
+ build_sdist:
51
+ name: Build source distribution
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v4
55
+
56
+ - name: Build sdist
57
+ run: pipx run build --sdist
58
+
59
+ - uses: actions/upload-artifact@v4
60
+ with:
61
+ name: cibw-sdist
62
+ path: dist/*.tar.gz
63
+
64
+ upload_pypi:
65
+ needs: [build_wheels, build_sdist]
66
+
67
+ environment: pypi
68
+ permissions:
69
+ id-token: write
70
+
71
+ runs-on: ubuntu-latest
72
+ # upload to PyPI on every tag starting with 'v'
73
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
74
+ # alternatively, to publish when a GitHub Release is created, use the following rule:
75
+ # if: github.event_name == 'release' && github.event.action == 'published'
76
+ steps:
77
+ - uses: actions/download-artifact@v4
78
+ with:
79
+ pattern: cibw-*
80
+ path: dist
81
+ merge-multiple: true
82
+
83
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,77 @@
1
+ _skbuild
2
+
3
+ .pydevproject
4
+ .project
5
+ .settings
6
+ *~
7
+ .*.sw[po]
8
+ .sw[po]
9
+ *.dat
10
+ *.pyc
11
+ build
12
+ *.prof
13
+ doc/hedge-notes.pdf
14
+ *.vtk
15
+ *.silo
16
+ *.session
17
+ dump.py
18
+ *.orig
19
+ /Makefile
20
+ *.png
21
+ tags
22
+ *.vtu
23
+ *.pvtu
24
+ *.pvd
25
+ doc/user-reference
26
+ doc/dev-reference
27
+ *.poly
28
+ *.node
29
+ *.bak
30
+ *.pdf
31
+ *.tif
32
+ *.so
33
+ *.pyd
34
+ *.mpeg
35
+ *-journal
36
+ visitlog.py
37
+ *.log
38
+ .figleaf
39
+ dist
40
+ *.egg*
41
+ MANIFEST
42
+ *.patch
43
+ *.LOCAL.[0-9]*
44
+ *.REMOTE.[0-9]*
45
+ *.BASE.[0-9]*
46
+ tmp
47
+ temp*
48
+ setuptools.pth
49
+ distribute-*.tar.gz
50
+ core
51
+ *.sess
52
+ _build
53
+ __pycache__
54
+ *.o
55
+ .ipynb_checkpoints
56
+ cscope.*
57
+
58
+ # needed by jenkins env
59
+ .env
60
+ virtualenv-[0-9]*
61
+ pytest.xml
62
+ setuptools*tar.gz
63
+ build-and-test-py-project.sh
64
+
65
+ cffi_build.py
66
+
67
+ .cache
68
+ .pytest_cache
69
+ .idea
70
+
71
+ wheelhouse
72
+
73
+ memray-*.bin
74
+ memray-*.html
75
+
76
+ .pylintrc.yml
77
+ .run-pylint.py