gstaichi 0.1.25.dev0__cp313-cp313-win_amd64.whl → 1.0.1__cp313-cp313-win_amd64.whl

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 (43) hide show
  1. gstaichi/CHANGELOG.md +3 -6
  2. gstaichi/__init__.py +1 -1
  3. gstaichi/_lib/core/gstaichi_python.cp313-win_amd64.pyd +0 -0
  4. gstaichi/_version.py +1 -1
  5. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/bin/SPIRV-Tools-shared.dll +0 -0
  6. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-diff.lib +0 -0
  7. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-link.lib +0 -0
  8. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-lint.lib +0 -0
  9. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-opt.lib +0 -0
  10. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-reduce.lib +0 -0
  11. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools.lib +0 -0
  12. {gstaichi-0.1.25.dev0.dist-info → gstaichi-1.0.1.dist-info}/METADATA +1 -1
  13. {gstaichi-0.1.25.dev0.dist-info → gstaichi-1.0.1.dist-info}/RECORD +40 -43
  14. gstaichi/__main__.py +0 -5
  15. gstaichi/_main.py +0 -545
  16. gstaichi-0.1.25.dev0.dist-info/entry_points.txt +0 -2
  17. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsConfig.cmake +0 -0
  18. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget-release.cmake +0 -0
  19. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget.cmake +0 -0
  20. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffConfig.cmake +0 -0
  21. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets-release.cmake +0 -0
  22. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets.cmake +0 -0
  23. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkConfig.cmake +0 -0
  24. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets-release.cmake +0 -0
  25. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets.cmake +0 -0
  26. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintConfig.cmake +0 -0
  27. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets-release.cmake +0 -0
  28. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets.cmake +0 -0
  29. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optConfig.cmake +0 -0
  30. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets-release.cmake +0 -0
  31. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets.cmake +0 -0
  32. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceConfig.cmake +0 -0
  33. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget-release.cmake +0 -0
  34. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget.cmake +0 -0
  35. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/include/spirv-tools/instrument.hpp +0 -0
  36. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/include/spirv-tools/libspirv.h +0 -0
  37. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/include/spirv-tools/libspirv.hpp +0 -0
  38. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/include/spirv-tools/linker.hpp +0 -0
  39. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/include/spirv-tools/optimizer.hpp +0 -0
  40. {gstaichi-0.1.25.dev0.data → gstaichi-1.0.1.data}/data/lib/SPIRV-Tools-shared.lib +0 -0
  41. {gstaichi-0.1.25.dev0.dist-info → gstaichi-1.0.1.dist-info}/WHEEL +0 -0
  42. {gstaichi-0.1.25.dev0.dist-info → gstaichi-1.0.1.dist-info}/licenses/LICENSE +0 -0
  43. {gstaichi-0.1.25.dev0.dist-info → gstaichi-1.0.1.dist-info}/top_level.txt +0 -0
gstaichi/CHANGELOG.md CHANGED
@@ -1,9 +1,6 @@
1
1
  Highlights:
2
+ - **Build system**
3
+ - Fix miscellaneous pypi publish issues (#129) (by **Hugh Perkins**)
2
4
 
3
5
  Full changelog:
4
- - remove filter on 'published' (by **Hugh Perkins**)
5
- - put back pillow, for now (by **Hugh Perkins**)
6
- - remove pillow and matplotlib (by **Hugh Perkins**)
7
- - prefer binary (by **Hugh Perkins**)
8
- - re-enable all python versions; and change conditional for publsih to pypi on 'published' instead of 'created' (by **Hugh Perkins**)
9
- - migrate to use artifact rather than s3 (by **Hugh Perkins**)
6
+ - [Build] Fix miscellaneous pypi publish issues (#129) (by **Hugh Perkins**)
gstaichi/__init__.py CHANGED
@@ -24,7 +24,7 @@ from gstaichi.types.primitive_types import *
24
24
 
25
25
  def __getattr__(attr):
26
26
  if attr == "cfg":
27
- return None if lang.impl.get_runtime().prog is None else lang.impl.current_cfg()
27
+ return None if lang.impl.get_runtime()._prog is None else lang.impl.current_cfg()
28
28
  raise AttributeError(f"module '{__name__}' has no attribute '{attr}'")
29
29
 
30
30
 
gstaichi/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = '0.1.25.dev0'
1
+ __version__ = '1.0.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gstaichi
3
- Version: 0.1.25.dev0
3
+ Version: 1.0.1
4
4
  Summary: The GsTaichi Programming Language
5
5
  Home-page: https://github.com/Genesis-Embedded-AI/gstaichi
6
6
  Author: GsTaichi developers
@@ -1,17 +1,15 @@
1
- gstaichi/CHANGELOG.md,sha256=Tc9M_4J7QkTCepb08C1W2E0LVZH5YWkGczrhi78AnSE,446
2
- gstaichi/__init__.py,sha256=ElfSJalp91BnNCfQX12hjt_eYFuOoNrcS4f1-JPlSm8,1043
3
- gstaichi/__main__.py,sha256=OW87w7o1iQm9wxO2L280yT9owYxXBxpw9uFle4xNLg4,53
1
+ gstaichi/CHANGELOG.md,sha256=xFdMlRMSrlSTsNOgsGBUOTrdhwlpH_dZpLI6nQEtS_Y,212
2
+ gstaichi/__init__.py,sha256=JFvEDYJ8EcHhPdrWMYez9cogC3nE1DMxjPmanOs8eYI,1044
4
3
  gstaichi/_funcs.py,sha256=u0o3F7Yq6r2dxkimThby4rvceRjUGajaLyzkPtwMJgM,23943
5
4
  gstaichi/_kernels.py,sha256=3R9_Ht0q1BSku-Jslvf5eYQY2bD8vFS5ZvL-im_iLPs,14664
6
5
  gstaichi/_logging.py,sha256=-4yqQ5rePskPzIbDdZSahAf4RYG_R7RNQDHau1wbcuc,3813
7
- gstaichi/_main.py,sha256=OjkSMxIxvxJS16zcrLB0nnFznWV7un_WdcVdAAjz0_Y,18535
8
- gstaichi/_version.py,sha256=aHLsnStkhv_L-k0JfE45bKXUIGRx8aRfAEjITzU5jVA,29
6
+ gstaichi/_version.py,sha256=8Wv5xVSe1ZBCAqA_6tUxNjAZSNcJFYNl94t2KJuRzWE,23
9
7
  gstaichi/_version_check.py,sha256=s_t4ZEajc4Uw4RTjm2QS-gSfDsjXe32NHKDwWNFiQHw,3756
10
8
  gstaichi/experimental.py,sha256=SwtoqhUcSxCSea-sT10G-GgZaTcSWUNPmTACK0MCHH4,359
11
9
  gstaichi/_lib/__init__.py,sha256=rsFUVL8_2_eyK2Z4MiP6NvLIEykG1fsK8l1WZNQa3ko,74
12
10
  gstaichi/_lib/utils.py,sha256=H7nEqcw_l7BGzXKEomjhovhQuHgZzQBUcXYiaS7_H5E,8090
13
11
  gstaichi/_lib/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- gstaichi/_lib/core/gstaichi_python.cp313-win_amd64.pyd,sha256=_S9poNlYULPT2D0Uq1HmNtPd0Q4ee4O0PisOVNigMEo,71151616
12
+ gstaichi/_lib/core/gstaichi_python.cp313-win_amd64.pyd,sha256=D1k9KafVMuuvIu9kmiIEhBHf7c1OtXN_lxuIB-TziWY,71151616
15
13
  gstaichi/_lib/core/gstaichi_python.pyi,sha256=4ok1bHJQ9JF9veM1Ilxw_eo9jSPczdQ47eGrBozFdso,114279
16
14
  gstaichi/_lib/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
15
  gstaichi/_lib/runtime/runtime_cuda.bc,sha256=hA22GTBD0WH6F_yGSFkC0MQTiWekh4hrR3cUzP-m3zQ,155520
@@ -99,40 +97,39 @@ gstaichi/types/primitive_types.py,sha256=otvV6aBEtMANfjiPaDjl2oB6_7yOsrkgwDkMgg7
99
97
  gstaichi/types/quant.py,sha256=orvn3oskYlhDd5Hln-Bt-oe0EXsPNjfOznMOCBEf1ak,3061
100
98
  gstaichi/types/texture_type.py,sha256=wWhaDNwOQwdMSnxCzXsltr3bWLmreOC9DvEVUV0vIAI,2444
101
99
  gstaichi/types/utils.py,sha256=KuF5ClnmISEsT2bGp4vR8fW-haQaGFw7Rf_41aVK73w,294
102
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools/cmake/SPIRV-ToolsConfig.cmake,sha256=jFprL3mwRRYJ0eh52yZqmUAWD9cA7xA7hhstBQU_scY,230
103
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget-release.cmake,sha256=X438aOEvZsAeo6Suk2LfStdal8R5m3UyfUPCg51DXGM,1477
104
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget.cmake,sha256=mriRCzvolwIXT55WDaD2ouu6AQvVHXQbRdJPmj0ZtSg,4468
105
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffConfig.cmake,sha256=3S1hOLuDTsAwTH-F_Xn9iBdCjjOH6Kx3EjNhDXBVShw,280
106
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets-release.cmake,sha256=6fnDD1oaU-DEP4JIq75wotq4OSPW63pe5jEcTVwEtyo,890
107
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets.cmake,sha256=U1RmMclqSVR8vePS98vpT2RqItqnivv5tXbfM58i9V0,5068
108
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkConfig.cmake,sha256=HgRoCSWZQhGnNEs938xBFDSdxK6crL6VtbrQ9-DqcMY,280
109
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets-release.cmake,sha256=cqDRYOLX02s-xo8EKyuGQwYX6uNa2Lxb363OP0tUB54,890
110
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets.cmake,sha256=nlQJ33ZSrKM5w-xi7lYlopolM5lwcX4Yyqrytlbvj5c,5028
111
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintConfig.cmake,sha256=E0o9wMS7mOV58CacqGpW5EOyG70WrdBKexx1AFlCyiQ,280
112
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets-release.cmake,sha256=3QC3rN6BhZ4n5-WrR9pmu4AfH1QKFIGCCXZjPA3A8c0,890
113
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets.cmake,sha256=X2bmbqKDvgHDUaYEjssse8Rgk_ZsETuMMS3EaX2gmo0,5068
114
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optConfig.cmake,sha256=CYygoz_0kxDnsT7_NbByRCuviPMS0TwwK86Qwc6tnnw,275
115
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets-release.cmake,sha256=vSAY69UsznqGYYqEUdL255U2B3LUZl9PSexaQwmPECw,883
116
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets.cmake,sha256=5Erfqk7DZeEa2sveBBlRw8QwBrdBZ55GDdo14DdNxpI,5029
117
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceConfig.cmake,sha256=i2lpvjP36I_6iEh5mObgdPMz5UOHQ4wIIOcbP5NIjTk,290
118
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget-release.cmake,sha256=D2c9eUqoh3H-ihr_1up2Ppo_2nSLoNyxmo9eWUV_pGE,904
119
- gstaichi-0.1.25.dev0.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget.cmake,sha256=_Miasn_g_L8dG2fTiigOC-rrDc3aKgHy3IfMi7DB2b4,5077
120
- gstaichi-0.1.25.dev0.data/data/bin/SPIRV-Tools-shared.dll,sha256=ddVcJJYKU36s4_mfq1SZCNQa_pYSTqp2bkwYBL86B8M,2042368
121
- gstaichi-0.1.25.dev0.data/data/include/spirv-tools/instrument.hpp,sha256=92ifeZiADg0tWjsnYsVqQoH5KbIxxnz3AK-S9r0ln2A,11917
122
- gstaichi-0.1.25.dev0.data/data/include/spirv-tools/libspirv.h,sha256=3rvQUbgMs9h3jxnC4OLRyPN-lWvqSjHgy7tS3ZkOYvI,42688
123
- gstaichi-0.1.25.dev0.data/data/include/spirv-tools/libspirv.hpp,sha256=TMJs7spPKjYx0FlnorbOSany4R1k2bk8B4wOi_vttic,15012
124
- gstaichi-0.1.25.dev0.data/data/include/spirv-tools/linker.hpp,sha256=SKevy72q3RRFOdqQotIb08h9NNMfAnNMKmSF7B20d0A,3691
125
- gstaichi-0.1.25.dev0.data/data/include/spirv-tools/optimizer.hpp,sha256=5MPYUrk-hRM6tbFkCr2IUKsukO8eAPjA9_DE-ib4Lnk,50060
126
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-diff.lib,sha256=vxtRJ-6-kQkbW8XqbecsMAC1EyeUbLsoK5yAx7-m8l4,4766340
127
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-link.lib,sha256=dD1aJbCtT8A7z8NRO927KpL_7nnmS5uaCJr4AxRTD9c,4074900
128
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-lint.lib,sha256=21iLWLD383RFEfBMQ8H8BR6AG-hiOtsPJq0pdUd9si8,4723542
129
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-opt.lib,sha256=lDhxwyuI9DtyOWyOWEPRIMZ_DTQT7c7U_XFlUVIgq7w,153197666
130
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-reduce.lib,sha256=yTCRv4wHMM8TojX8rSbeQSPC67-4erOZKKLs0G1BHVs,14806982
131
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools-shared.lib,sha256=ZlBL6f87poum38xdBy3BRRHgL5QmAPiozIrh23V0ilo,16470
132
- gstaichi-0.1.25.dev0.data/data/lib/SPIRV-Tools.lib,sha256=zP89a-Rcd4IfKwknOgrk5MVOalyvjkREgoZQbTOH_ak,37167926
133
- gstaichi-0.1.25.dev0.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
134
- gstaichi-0.1.25.dev0.dist-info/METADATA,sha256=lfw2swvkOUZxVNvzELtn9HDTbhIsvAWYf-k4VtWi5vg,4773
135
- gstaichi-0.1.25.dev0.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
136
- gstaichi-0.1.25.dev0.dist-info/entry_points.txt,sha256=zCEhfa09khn5bjORszCmecpH2mDo6y5n5dlJADI6KHc,43
137
- gstaichi-0.1.25.dev0.dist-info/top_level.txt,sha256=BoKkPzj6Sfycl5Ge5sB9QRDVZvFB5R0sxbZn4YNPb80,9
138
- gstaichi-0.1.25.dev0.dist-info/RECORD,,
100
+ gstaichi-1.0.1.data/data/SPIRV-Tools/cmake/SPIRV-ToolsConfig.cmake,sha256=jFprL3mwRRYJ0eh52yZqmUAWD9cA7xA7hhstBQU_scY,230
101
+ gstaichi-1.0.1.data/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget-release.cmake,sha256=X438aOEvZsAeo6Suk2LfStdal8R5m3UyfUPCg51DXGM,1477
102
+ gstaichi-1.0.1.data/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget.cmake,sha256=mriRCzvolwIXT55WDaD2ouu6AQvVHXQbRdJPmj0ZtSg,4468
103
+ gstaichi-1.0.1.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffConfig.cmake,sha256=3S1hOLuDTsAwTH-F_Xn9iBdCjjOH6Kx3EjNhDXBVShw,280
104
+ gstaichi-1.0.1.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets-release.cmake,sha256=6fnDD1oaU-DEP4JIq75wotq4OSPW63pe5jEcTVwEtyo,890
105
+ gstaichi-1.0.1.data/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets.cmake,sha256=U1RmMclqSVR8vePS98vpT2RqItqnivv5tXbfM58i9V0,5068
106
+ gstaichi-1.0.1.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkConfig.cmake,sha256=HgRoCSWZQhGnNEs938xBFDSdxK6crL6VtbrQ9-DqcMY,280
107
+ gstaichi-1.0.1.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets-release.cmake,sha256=cqDRYOLX02s-xo8EKyuGQwYX6uNa2Lxb363OP0tUB54,890
108
+ gstaichi-1.0.1.data/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets.cmake,sha256=nlQJ33ZSrKM5w-xi7lYlopolM5lwcX4Yyqrytlbvj5c,5028
109
+ gstaichi-1.0.1.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintConfig.cmake,sha256=E0o9wMS7mOV58CacqGpW5EOyG70WrdBKexx1AFlCyiQ,280
110
+ gstaichi-1.0.1.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets-release.cmake,sha256=3QC3rN6BhZ4n5-WrR9pmu4AfH1QKFIGCCXZjPA3A8c0,890
111
+ gstaichi-1.0.1.data/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets.cmake,sha256=X2bmbqKDvgHDUaYEjssse8Rgk_ZsETuMMS3EaX2gmo0,5068
112
+ gstaichi-1.0.1.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optConfig.cmake,sha256=CYygoz_0kxDnsT7_NbByRCuviPMS0TwwK86Qwc6tnnw,275
113
+ gstaichi-1.0.1.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets-release.cmake,sha256=vSAY69UsznqGYYqEUdL255U2B3LUZl9PSexaQwmPECw,883
114
+ gstaichi-1.0.1.data/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets.cmake,sha256=5Erfqk7DZeEa2sveBBlRw8QwBrdBZ55GDdo14DdNxpI,5029
115
+ gstaichi-1.0.1.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceConfig.cmake,sha256=i2lpvjP36I_6iEh5mObgdPMz5UOHQ4wIIOcbP5NIjTk,290
116
+ gstaichi-1.0.1.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget-release.cmake,sha256=D2c9eUqoh3H-ihr_1up2Ppo_2nSLoNyxmo9eWUV_pGE,904
117
+ gstaichi-1.0.1.data/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget.cmake,sha256=_Miasn_g_L8dG2fTiigOC-rrDc3aKgHy3IfMi7DB2b4,5077
118
+ gstaichi-1.0.1.data/data/bin/SPIRV-Tools-shared.dll,sha256=j1MKdWjGk4h4mGZkunt3m-gq3UxSfn2ojdSTY8td5cI,2042368
119
+ gstaichi-1.0.1.data/data/include/spirv-tools/instrument.hpp,sha256=92ifeZiADg0tWjsnYsVqQoH5KbIxxnz3AK-S9r0ln2A,11917
120
+ gstaichi-1.0.1.data/data/include/spirv-tools/libspirv.h,sha256=3rvQUbgMs9h3jxnC4OLRyPN-lWvqSjHgy7tS3ZkOYvI,42688
121
+ gstaichi-1.0.1.data/data/include/spirv-tools/libspirv.hpp,sha256=TMJs7spPKjYx0FlnorbOSany4R1k2bk8B4wOi_vttic,15012
122
+ gstaichi-1.0.1.data/data/include/spirv-tools/linker.hpp,sha256=SKevy72q3RRFOdqQotIb08h9NNMfAnNMKmSF7B20d0A,3691
123
+ gstaichi-1.0.1.data/data/include/spirv-tools/optimizer.hpp,sha256=5MPYUrk-hRM6tbFkCr2IUKsukO8eAPjA9_DE-ib4Lnk,50060
124
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-diff.lib,sha256=Y-sHgBWg30Kx8G367Z0DgbMjQsW1UJMd84bnSCcXEZc,4766340
125
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-link.lib,sha256=omwUQq0DXEPHyZiiTO0KDW0eSaf0usZUv0caj6iA2oE,4074900
126
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-lint.lib,sha256=l0mwomsqGCAVBUM4UV5l_q_VSFSg0DsiEcATZ1MkcWM,4723542
127
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-opt.lib,sha256=T2gO0V5a1UcinnsbUtt14RceXr8t53gPmwE2Hp5XXu4,153197666
128
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-reduce.lib,sha256=xItMUvn84_9KCfNBARMsGJIHETrDu3nKwLDgjKYl6Z0,14806982
129
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools-shared.lib,sha256=ZlBL6f87poum38xdBy3BRRHgL5QmAPiozIrh23V0ilo,16470
130
+ gstaichi-1.0.1.data/data/lib/SPIRV-Tools.lib,sha256=FPP1kgdt45oqYOzDegN_okZKk4H6sAxKWNbf6cjDz5g,37167926
131
+ gstaichi-1.0.1.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
132
+ gstaichi-1.0.1.dist-info/METADATA,sha256=NB6XEh9xOXaRD_odedvIN2VUCI-yje9wFMDdZ-LeUFU,4767
133
+ gstaichi-1.0.1.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
134
+ gstaichi-1.0.1.dist-info/top_level.txt,sha256=BoKkPzj6Sfycl5Ge5sB9QRDVZvFB5R0sxbZn4YNPb80,9
135
+ gstaichi-1.0.1.dist-info/RECORD,,
gstaichi/__main__.py DELETED
@@ -1,5 +0,0 @@
1
- # type: ignore
2
-
3
- from ._main import main
4
-
5
- main()
gstaichi/_main.py DELETED
@@ -1,545 +0,0 @@
1
- # type: ignore
2
-
3
- import argparse
4
- import math
5
- import os
6
- import runpy
7
- import shutil
8
- import subprocess
9
- import sys
10
- import timeit
11
- from collections import defaultdict
12
- from functools import wraps
13
- from pathlib import Path
14
-
15
- import rich
16
- from colorama import Fore
17
- from rich.console import Console
18
-
19
- from gstaichi._lib import core as _ti_core
20
- from gstaichi._lib import utils
21
- from gstaichi.lang import impl
22
- from gstaichi.tools import diagnose
23
-
24
-
25
- def timer(func):
26
- """Function decorator to benchmark a function running time."""
27
-
28
- @wraps(func)
29
- def wrapper(*args, **kwargs):
30
- start = timeit.default_timer()
31
- result = func(*args, **kwargs)
32
- elapsed = timeit.default_timer() - start
33
- print(f">>> Running time: {elapsed:.2f}s")
34
- return result
35
-
36
- return wrapper
37
-
38
-
39
- def registerableCLI(cls):
40
- """Class decorator to register methods with @register into a set."""
41
- cls.registered_commands = set([])
42
- for name in dir(cls):
43
- method = getattr(cls, name)
44
- if hasattr(method, "registered"):
45
- cls.registered_commands.add(name)
46
- return cls
47
-
48
-
49
- def register(func):
50
- """Method decorator to register CLI commands."""
51
- func.registered = True
52
- return func
53
-
54
-
55
- @registerableCLI
56
- class GsTaichiMain:
57
- def __init__(self, test_mode: bool = False):
58
- self.banner = f"\n{'*' * 43}\n** GsTaichi Programming Language **\n{'*' * 43}"
59
- print(self.banner)
60
-
61
- print(self._get_friend_links())
62
-
63
- parser = argparse.ArgumentParser(description="GsTaichi CLI", usage=self._usage())
64
- parser.add_argument("command", help="command from the above list to run")
65
-
66
- # Flag for unit testing
67
- self.test_mode = test_mode
68
-
69
- self.main_parser = parser
70
-
71
- @timer
72
- def __call__(self):
73
- # Print help if no command provided
74
- if len(sys.argv[1:2]) == 0:
75
- self.main_parser.print_help()
76
- return 1
77
-
78
- # Parse the command
79
- args = self.main_parser.parse_args(sys.argv[1:2])
80
-
81
- if args.command not in self.registered_commands: # pylint: disable=E1101
82
- # TODO: do we really need this?
83
- if args.command.endswith(".py"):
84
- GsTaichiMain._exec_python_file(args.command)
85
- else:
86
- print(f"{args.command} is not a valid command!")
87
- self.main_parser.print_help()
88
- return 1
89
-
90
- return getattr(self, args.command)(sys.argv[2:])
91
-
92
- @staticmethod
93
- def _get_friend_links():
94
- return (
95
- "\n"
96
- "Docs: https://docs.taichi-lang.org/\n"
97
- "GitHub: https://github.com/taichi-dev/gstaichi/\n"
98
- "Forum: https://forum.gstaichi.graphics/\n"
99
- )
100
-
101
- def _usage(self) -> str:
102
- """Compose deterministic usage message based on registered_commands."""
103
- # TODO: add some color to commands
104
- msg = "\n"
105
- space = 20
106
- for command in sorted(self.registered_commands): # pylint: disable=E1101
107
- msg += f" {command}{' ' * (space - len(command))}|-> {getattr(self, command).__doc__}\n"
108
- return msg
109
-
110
- @staticmethod
111
- def _exec_python_file(filename: str):
112
- """Execute a Python file based on filename."""
113
- # TODO: do we really need this?
114
- subprocess.call([sys.executable, filename] + sys.argv[1:])
115
-
116
- @staticmethod
117
- def _get_examples_dir() -> Path:
118
- """Get the path to the examples directory."""
119
-
120
- root_dir = utils.package_root
121
- examples_dir = Path(root_dir) / "examples"
122
- return examples_dir
123
-
124
- @staticmethod
125
- def _get_available_examples() -> set:
126
- """Get a set of all available example names."""
127
- examples_dir = GsTaichiMain._get_examples_dir()
128
- all_examples = examples_dir.rglob("*.py")
129
- all_example_names = {f.stem: f.parent for f in all_examples}
130
- return all_example_names
131
-
132
- @staticmethod
133
- def _example_choices_type(choices):
134
- def support_choice_with_dot_py(choice):
135
- if choice.endswith(".py") and choice.split(".")[0] in choices:
136
- # try to find and remove python file extension
137
- return choice.split(".")[0]
138
- return choice
139
-
140
- return support_choice_with_dot_py
141
-
142
- @register
143
- def example(self, arguments: list = sys.argv[2:]):
144
- """Run an example by name (or name.py)"""
145
-
146
- def colormap(index, name):
147
- from colorsys import hls_to_rgb # pylint: disable=C0415
148
-
149
- x = (ord(name[0].upper()) - 64.0) / 26.0
150
- r, g, b = hls_to_rgb(x, 0.4, 1.0)
151
- r = hex(int(r * 255) % 16)[2:]
152
- g = hex(int(g * 255) % 16)[2:]
153
- b = hex(int(b * 255) % 16)[2:]
154
- return f"{index}: [#{r}{r}{g}{g}{b}{b}]{name}"
155
-
156
- console = Console()
157
- table = rich.table.Table(
158
- box=rich.box.HORIZONTALS,
159
- show_header=False,
160
- header_style="bold #2070b2",
161
- title="[bold][#3fdda4]GSTAICHI[#f8e020] EXAMPLES",
162
- )
163
-
164
- ncols = 3
165
- choices = GsTaichiMain._get_available_examples()
166
- nrows, rem = divmod(len(choices), ncols)
167
- if rem > 0:
168
- nrows += 1
169
- names = sorted(choices.keys())
170
- for k in range(nrows):
171
- table.add_row(*[colormap(j, names[j]) for j in range(k, len(choices), nrows)])
172
-
173
- parser = argparse.ArgumentParser(prog="ti example", description=f"{self.example.__doc__}")
174
- parser.add_argument(
175
- "name",
176
- type=GsTaichiMain._example_choices_type(choices.keys()),
177
- choices=sorted(choices.keys()),
178
- help=console.print(table),
179
- nargs="?",
180
- default=None,
181
- metavar="name",
182
- )
183
- parser.add_argument(
184
- "-p",
185
- "--print",
186
- required=False,
187
- dest="print",
188
- action="store_true",
189
- help="Print example source code instead of running it",
190
- )
191
- parser.add_argument(
192
- "-P",
193
- "--pretty-print",
194
- required=False,
195
- dest="pretty_print",
196
- action="store_true",
197
- help="Like --print, but print in a rich format with line numbers",
198
- )
199
- parser.add_argument(
200
- "-s",
201
- "--save",
202
- required=False,
203
- dest="save",
204
- action="store_true",
205
- help="Save source code to current directory instead of running it",
206
- )
207
-
208
- # TODO: Pass the arguments to downstream correctly(#3216).
209
- args = parser.parse_args(arguments)
210
-
211
- examples_dir = GsTaichiMain._get_examples_dir()
212
- example_name = args.name
213
- if example_name is None:
214
- try:
215
- index = input(f"Please input the example index (between 0 and {len(names)}): ")
216
- while not index.isdigit() or int(index) >= len(names):
217
- index = input(f"Example [{index}] does not exist. Please try again: ")
218
- example_name = names[int(index)]
219
- except KeyboardInterrupt as e:
220
- print("\nCancelled by user, exiting...")
221
- return 1
222
-
223
- target = str((examples_dir / choices[example_name] / f"{example_name}.py").resolve())
224
- # path for examples needs to be modified for implicit relative imports
225
- sys.path.append(str((examples_dir / choices[example_name]).resolve()))
226
-
227
- # Short circuit for testing
228
- if self.test_mode:
229
- return args
230
-
231
- if args.save:
232
- print(f"Saving example {example_name} to current directory...")
233
- shutil.copy(target, ".")
234
- return 0
235
-
236
- if args.pretty_print:
237
- syntax = rich.syntax.Syntax.from_path(target, line_numbers=True)
238
- console = Console()
239
- console.print(syntax)
240
- return 0
241
-
242
- if args.print:
243
- with open(target) as f:
244
- print(f.read())
245
- return 0
246
-
247
- print(f"Running example {example_name} ...")
248
-
249
- runpy.run_path(target, run_name="__main__")
250
-
251
- @staticmethod
252
- @register
253
- def changelog(arguments: list = sys.argv[2:]):
254
- """Display changelog of current version"""
255
- changelog_md = os.path.join(utils.package_root, "CHANGELOG.md")
256
- with open(changelog_md) as f:
257
- print(f.read())
258
-
259
- @staticmethod
260
- @register
261
- def release(arguments: list = sys.argv[2:]):
262
- """Make source code release"""
263
- raise RuntimeError("TBD")
264
-
265
- @staticmethod
266
- @register
267
- def doc(arguments: list = sys.argv[2:]):
268
- """Build documentation"""
269
- raise RuntimeError("TBD")
270
-
271
- @staticmethod
272
- @register
273
- def format(arguments: list = sys.argv[2:]):
274
- """Reformat modified source files"""
275
- raise RuntimeError("Please run `pre-commit run -a` instead")
276
-
277
- @staticmethod
278
- @register
279
- def format_all(arguments: list = sys.argv[2:]):
280
- """Reformat all source files"""
281
- raise RuntimeError("Please run `pre-commit run -a` instead")
282
-
283
- @staticmethod
284
- def _display_benchmark_regression(xd, yd, args):
285
- def parse_dat(file):
286
- _dict = {}
287
- with open(file) as f:
288
- for line in f.readlines():
289
- try:
290
- a, b = line.strip().split(":")
291
- except:
292
- continue
293
- b = float(b)
294
- if abs(b % 1.0) < 1e-5: # codegen_*
295
- b = int(b)
296
- _dict[a.strip()] = b
297
- return _dict
298
-
299
- def parse_name(file):
300
- if file[0:5] == "test_":
301
- return file[5:-4].replace("__test_", "::", 1)
302
- if file[0:10] == "benchmark_":
303
- return "::".join(reversed(file[10:-4].split("__arch_")))
304
- raise Exception(f"bad benchmark file name {file}")
305
-
306
- def get_dats(directory):
307
- _list = []
308
- for x in os.listdir(directory):
309
- if x.endswith(".dat"):
310
- _list.append(x)
311
- _dict = {}
312
- for x in _list:
313
- name = parse_name(x)
314
- path = os.path.join(directory, x)
315
- _dict[name] = parse_dat(path)
316
- return _dict
317
-
318
- spec = args.files
319
- single_line = spec and len(spec) == 1
320
- xs, ys = get_dats(xd), get_dats(yd)
321
- scatter = defaultdict(list)
322
- for name in reversed(sorted(set(xs.keys()).union(ys.keys()))):
323
- file, func = name.split("::")
324
- u, v = xs.get(name, {}), ys.get(name, {})
325
- ret = ""
326
- for key in set(u.keys()).union(v.keys()):
327
- if spec and key not in spec:
328
- continue
329
- a, b = u.get(key, 0), v.get(key, 0)
330
- if a == 0:
331
- if b == 0:
332
- res = 1.0
333
- else:
334
- res = math.inf
335
- else:
336
- res = b / a
337
- scatter[key].append(res)
338
- if res == 1:
339
- continue
340
- if not single_line:
341
- ret += f"{key:<30}"
342
- res -= 1
343
- color = Fore.RESET
344
- if res > 0:
345
- color = Fore.RED
346
- elif res < 0:
347
- color = Fore.GREEN
348
- if isinstance(a, float):
349
- a = f"{a:>7.2}"
350
- else:
351
- a = f"{a:>7}"
352
- if isinstance(b, float):
353
- b = f"{b:>7.2}"
354
- else:
355
- b = f"{b:>7}"
356
- ret += f"{Fore.MAGENTA}{a}{Fore.RESET} -> "
357
- ret += f"{Fore.CYAN}{b} {color}{res:>+9.1%}{Fore.RESET}\n"
358
- if ret != "":
359
- print(f'{file + "::" + func:_<58}', end="")
360
- if not single_line:
361
- print("")
362
- print(ret, end="")
363
- if not single_line:
364
- print("")
365
-
366
- @staticmethod
367
- def _get_benchmark_baseline_dir():
368
- return os.path.join(_ti_core.get_repo_dir(), "benchmarks", "baseline")
369
-
370
- @staticmethod
371
- def _get_benchmark_output_dir():
372
- return os.path.join(_ti_core.get_repo_dir(), "benchmarks", "output")
373
-
374
- @register
375
- def regression(self, arguments: list = sys.argv[2:]):
376
- """Display benchmark regression test result"""
377
- parser = argparse.ArgumentParser(prog="ti regression", description=f"{self.regression.__doc__}")
378
- parser.add_argument("files", nargs="*", help="Test file(s) to be run for benchmarking")
379
- args = parser.parse_args(arguments)
380
-
381
- # Short circuit for testing
382
- if self.test_mode:
383
- return args
384
-
385
- baseline_dir = GsTaichiMain._get_benchmark_baseline_dir()
386
- output_dir = GsTaichiMain._get_benchmark_output_dir()
387
- GsTaichiMain._display_benchmark_regression(baseline_dir, output_dir, args)
388
-
389
- return None
390
-
391
- @register
392
- def baseline(self, arguments: list = sys.argv[2:]):
393
- """Archive current benchmark result as baseline"""
394
- parser = argparse.ArgumentParser(prog="ti baseline", description=f"{self.baseline.__doc__}")
395
- args = parser.parse_args(arguments)
396
-
397
- # Short circuit for testing
398
- if self.test_mode:
399
- return args
400
-
401
- baseline_dir = GsTaichiMain._get_benchmark_baseline_dir()
402
- output_dir = GsTaichiMain._get_benchmark_output_dir()
403
- shutil.rmtree(baseline_dir, True)
404
- shutil.copytree(output_dir, baseline_dir)
405
- print(f"[benchmark] baseline data saved to {baseline_dir}")
406
-
407
- return None
408
-
409
- @staticmethod
410
- @register
411
- def test(self, arguments: list = sys.argv[2:]):
412
- raise RuntimeError("ti test is deprecated. Please run `python tests/run_tests.py` instead.")
413
-
414
- @register
415
- def run(self, arguments: list = sys.argv[2:]):
416
- """Run a single script"""
417
- parser = argparse.ArgumentParser(prog="ti run", description=f"{self.run.__doc__}")
418
- parser.add_argument(
419
- "filename",
420
- help="A single (Python) script to run with GsTaichi, e.g. render.py",
421
- )
422
- args = parser.parse_args(arguments)
423
-
424
- # Short circuit for testing
425
- if self.test_mode:
426
- return args
427
-
428
- runpy.run_path(args.filename)
429
-
430
- return None
431
-
432
- @register
433
- def debug(self, arguments: list = sys.argv[2:]):
434
- """Debug a single script"""
435
- parser = argparse.ArgumentParser(prog="ti debug", description=f"{self.debug.__doc__}")
436
- parser.add_argument(
437
- "filename",
438
- help="A single (Python) script to run with debugger, e.g. render.py",
439
- )
440
- args = parser.parse_args(arguments)
441
-
442
- # Short circuit for testing
443
- if self.test_mode:
444
- return args
445
-
446
- _ti_core.set_core_trigger_gdb_when_crash(True)
447
- os.environ["TI_DEBUG"] = "1"
448
-
449
- runpy.run_path(args.filename, run_name="__main__")
450
-
451
- return None
452
-
453
- @staticmethod
454
- @register
455
- def diagnose(arguments: list = sys.argv[2:]):
456
- """System diagnose information"""
457
- diagnose.main()
458
-
459
- @staticmethod
460
- @register
461
- def repl(arguments: list = sys.argv[2:]):
462
- """Start GsTaichi REPL / Python shell with 'import gstaichi as ti'"""
463
-
464
- def local_scope():
465
- try:
466
- import IPython # pylint: disable=C0415
467
-
468
- IPython.embed()
469
- except ImportError:
470
- import code # pylint: disable=C0415
471
-
472
- __name__ = "__console__" # pylint: disable=W0622
473
- code.interact(local=locals())
474
-
475
- local_scope()
476
-
477
- @staticmethod
478
- @register
479
- def lint(arguments: list = sys.argv[2:]):
480
- """Run pylint checker for the Python codebase of GsTaichi"""
481
- # TODO: support arguments for lint specific files
482
- # parser = argparse.ArgumentParser(prog='ti lint', description=f"{self.lint.__doc__}")
483
- # args = parser.parse_args(arguments)
484
-
485
- options = [os.path.dirname(__file__)]
486
-
487
- from multiprocessing import cpu_count # pylint: disable=C0415
488
-
489
- threads = min(8, cpu_count())
490
- options += ["-j", str(threads)]
491
-
492
- # http://pylint.pycqa.org/en/latest/user_guide/run.html
493
- # TODO: support redirect output to lint.log
494
- import pylint # pylint: disable=C0415
495
-
496
- pylint.lint.Run(options)
497
-
498
- @staticmethod
499
- @register
500
- def cache(arguments: list = sys.argv[2:]):
501
- """Manage the offline cache files manually"""
502
-
503
- def clean(cmd_args, parser):
504
- parser.add_argument(
505
- "-p",
506
- "--offline-cache-file-path",
507
- dest="offline_cache_file_path",
508
- default=impl.default_cfg().offline_cache_file_path,
509
- )
510
- args = parser.parse_args(cmd_args)
511
- path = os.path.abspath(args.offline_cache_file_path)
512
- count = _ti_core.clean_offline_cache_files(path)
513
- print(f"Deleted {count} offline cache files in {path}")
514
-
515
- # TODO(PGZXB): Provide more tools to manage the offline cache files
516
- subcmds_map = {"clean": (clean, "Clean all offline cache files in given path")}
517
-
518
- def print_help():
519
- print("usage: ti cache <command> [<args>]")
520
- for name, value in subcmds_map.items():
521
- _, description = value
522
- print(f"\t{name}\t|-> {description}")
523
-
524
- if not arguments:
525
- print_help()
526
- return
527
-
528
- subcmd = arguments[0]
529
- if subcmd not in subcmds_map:
530
- print(f"'ti cache {subcmd}' is not a valid command!")
531
- print_help()
532
- return
533
-
534
- func, description = subcmds_map[subcmd]
535
- parser = argparse.ArgumentParser(prog=f"ti cache {subcmd}", description=description)
536
- func(cmd_args=arguments[1:], parser=parser)
537
-
538
-
539
- def main():
540
- cli = GsTaichiMain()
541
- return cli()
542
-
543
-
544
- if __name__ == "__main__":
545
- sys.exit(main())
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- ti = gstaichi._main:main