gstaichi 0.1.25.dev0__cp313-cp313-win_amd64.whl → 2.0.0__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 (87) 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/_lib/core/gstaichi_python.pyi +13 -41
  5. gstaichi/_lib/runtime/runtime_cuda.bc +0 -0
  6. gstaichi/_lib/runtime/runtime_x64.bc +0 -0
  7. gstaichi/_test_tools/__init__.py +18 -0
  8. gstaichi/_test_tools/dataclass_test_tools.py +36 -0
  9. gstaichi/_test_tools/textwrap2.py +6 -0
  10. gstaichi/_version.py +1 -1
  11. gstaichi/examples/minimal.py +1 -1
  12. gstaichi/lang/__init__.py +1 -1
  13. gstaichi/lang/_dataclass_util.py +31 -0
  14. gstaichi/lang/_fast_caching/__init__.py +3 -0
  15. gstaichi/lang/_fast_caching/args_hasher.py +110 -0
  16. gstaichi/lang/_fast_caching/config_hasher.py +30 -0
  17. gstaichi/lang/_fast_caching/fast_caching_types.py +21 -0
  18. gstaichi/lang/_fast_caching/function_hasher.py +57 -0
  19. gstaichi/lang/_fast_caching/hash_utils.py +11 -0
  20. gstaichi/lang/_fast_caching/python_side_cache.py +52 -0
  21. gstaichi/lang/_fast_caching/src_hasher.py +75 -0
  22. gstaichi/lang/_kernel_impl_dataclass.py +212 -0
  23. gstaichi/lang/_template_mapper.py +16 -20
  24. gstaichi/lang/_wrap_inspect.py +27 -1
  25. gstaichi/lang/ast/ast_transformer.py +7 -2
  26. gstaichi/lang/ast/ast_transformer_utils.py +18 -13
  27. gstaichi/lang/ast/ast_transformers/call_transformer.py +73 -16
  28. gstaichi/lang/ast/ast_transformers/function_def_transformer.py +102 -118
  29. gstaichi/lang/field.py +0 -38
  30. gstaichi/lang/impl.py +25 -24
  31. gstaichi/lang/kernel_arguments.py +28 -30
  32. gstaichi/lang/kernel_impl.py +154 -200
  33. gstaichi/lang/matrix.py +0 -46
  34. gstaichi/lang/struct.py +0 -45
  35. gstaichi/lang/util.py +11 -80
  36. gstaichi/types/annotations.py +10 -5
  37. gstaichi/types/compound_types.py +1 -20
  38. gstaichi/types/ndarray_type.py +31 -11
  39. gstaichi/types/utils.py +0 -2
  40. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/bin/SPIRV-Tools-shared.dll +0 -0
  41. gstaichi-2.0.0.data/data/include/GLFW/glfw3.h +6389 -0
  42. gstaichi-2.0.0.data/data/include/GLFW/glfw3native.h +594 -0
  43. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-diff.lib +0 -0
  44. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-link.lib +0 -0
  45. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-lint.lib +0 -0
  46. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-opt.lib +0 -0
  47. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-reduce.lib +0 -0
  48. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools-shared.lib +0 -0
  49. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/lib/SPIRV-Tools.lib +0 -0
  50. gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Config.cmake +3 -0
  51. gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3ConfigVersion.cmake +65 -0
  52. gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets-release.cmake +19 -0
  53. gstaichi-2.0.0.data/data/lib/cmake/glfw3/glfw3Targets.cmake +107 -0
  54. gstaichi-2.0.0.data/data/lib/glfw3.lib +0 -0
  55. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/METADATA +2 -1
  56. gstaichi-2.0.0.dist-info/RECORD +153 -0
  57. gstaichi/__main__.py +0 -5
  58. gstaichi/_main.py +0 -545
  59. gstaichi/lang/argpack.py +0 -411
  60. gstaichi-0.1.25.dev0.dist-info/RECORD +0 -138
  61. gstaichi-0.1.25.dev0.dist-info/entry_points.txt +0 -2
  62. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsConfig.cmake +0 -0
  63. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget-release.cmake +0 -0
  64. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools/cmake/SPIRV-ToolsTarget.cmake +0 -0
  65. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffConfig.cmake +0 -0
  66. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets-release.cmake +0 -0
  67. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-diff/cmake/SPIRV-Tools-diffTargets.cmake +0 -0
  68. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkConfig.cmake +0 -0
  69. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets-release.cmake +0 -0
  70. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-link/cmake/SPIRV-Tools-linkTargets.cmake +0 -0
  71. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintConfig.cmake +0 -0
  72. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets-release.cmake +0 -0
  73. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-lint/cmake/SPIRV-Tools-lintTargets.cmake +0 -0
  74. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optConfig.cmake +0 -0
  75. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets-release.cmake +0 -0
  76. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-opt/cmake/SPIRV-Tools-optTargets.cmake +0 -0
  77. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceConfig.cmake +0 -0
  78. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget-release.cmake +0 -0
  79. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/SPIRV-Tools-reduce/cmake/SPIRV-Tools-reduceTarget.cmake +0 -0
  80. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/instrument.hpp +0 -0
  81. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.h +0 -0
  82. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/libspirv.hpp +0 -0
  83. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/linker.hpp +0 -0
  84. {gstaichi-0.1.25.dev0.data → gstaichi-2.0.0.data}/data/include/spirv-tools/optimizer.hpp +0 -0
  85. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/WHEEL +0 -0
  86. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/licenses/LICENSE +0 -0
  87. {gstaichi-0.1.25.dev0.dist-info → gstaichi-2.0.0.dist-info}/top_level.txt +0 -0
gstaichi/lang/argpack.py DELETED
@@ -1,411 +0,0 @@
1
- # type: ignore
2
-
3
- import numpy as np
4
-
5
- import gstaichi.lang
6
- from gstaichi._lib import core as _ti_core
7
- from gstaichi.lang import impl, ops
8
- from gstaichi.lang.exception import (
9
- GsTaichiRuntimeTypeError,
10
- GsTaichiSyntaxError,
11
- )
12
- from gstaichi.lang.matrix import Matrix, MatrixType
13
- from gstaichi.lang.struct import Struct, StructType
14
- from gstaichi.lang.util import cook_dtype, in_python_scope, python_scope
15
- from gstaichi.types import (
16
- ndarray_type,
17
- primitive_types,
18
- sparse_matrix_builder,
19
- texture_type,
20
- )
21
- from gstaichi.types.compound_types import CompoundType
22
- from gstaichi.types.utils import is_signed
23
-
24
-
25
- class ArgPack:
26
- """ The `ArgPack` Type Class.
27
-
28
- The `ArgPack` operates as a dictionary-like data pack, storing members as (key, value) pairs. Members stored can
29
- range from scalars and matrices to other dictionary-like structures. Distinguished from structs, `ArgPack` can
30
- accommodate buffer types such as `NdarrayType` and `TextureType` from GsTaichi. However, unlike `ti.Struct` which
31
- serves as a data container, `ArgPack` functions as a reference container. It's important to note that `ArgPack`
32
- cannot be nested within other types except for another `ArgPack`, and can only be utilized as kernel parameters.
33
-
34
- Args:
35
- annotations (Dict[str, Union[Dict, Matrix, Struct]]): \
36
- The keys and types for `ArgPack` members.
37
- dtype (ArgPackType): \
38
- The ArgPackType class of this ArgPack object.
39
- entries (Dict[str, Union[Dict, Matrix, Struct]]): \
40
- The keys and corresponding values for `ArgPack` members.
41
-
42
- Returns:
43
- An instance of this `ArgPack`.
44
-
45
- Example::
46
-
47
- >>> vec3 = ti.types.vector(3, ti.f32)
48
- >>> pack_type = ti.ArgPackType(v=vec3, t=ti.f32)
49
- >>> a = pack_type(v=vec3([0, 0, 0]), t=1.0)
50
- >>> print(a.items)
51
- dict_items([('v', [0. 0. 0.]), ('t', 1.0)])
52
- """
53
-
54
- _instance_count = 0
55
-
56
- def __init__(self, annotations, dtype, *args, **kwargs):
57
- # converts dicts to argument packs
58
- if len(args) == 1 and kwargs == {} and isinstance(args[0], dict):
59
- self.__entries = args[0]
60
- elif len(args) == 0:
61
- self.__entries = kwargs
62
- else:
63
- raise GsTaichiSyntaxError(
64
- "Custom argument packs need to be initialized using either dictionary or keyword arguments"
65
- )
66
- if annotations.keys() != self.__entries.keys():
67
- raise GsTaichiSyntaxError("ArgPack annotations keys not equals to entries keys.")
68
- self.__annotations = annotations
69
- for k, v in self.__entries.items():
70
- self.__entries[k] = v if in_python_scope() else impl.expr_init(v)
71
- self._register_members()
72
- self.__dtype = dtype
73
- self.__argpack = impl.get_runtime().prog.create_argpack(self.__dtype)
74
- for i, (k, v) in enumerate(self.__entries.items()):
75
- self._write_to_device(self.__annotations[k], type(v), v, self._calc_element_true_index(i))
76
-
77
- def __del__(self):
78
- if impl is not None and impl.get_runtime() is not None and impl.get_runtime().prog is not None:
79
- impl.get_runtime().prog.delete_argpack(self.__argpack)
80
-
81
- @property
82
- def keys(self):
83
- """Returns the list of member names in string format.
84
-
85
- Example::
86
-
87
- >>> vec3 = ti.types.vector(3, ti.f32)
88
- >>> sphere_pack = ti.ArgPackType(center=vec3, radius=ti.f32)
89
- >>> sphere = sphere_pack(center=vec3([0, 0, 0]), radius=1.0)
90
- >>> sphere.keys
91
- ['center', 'radius']
92
- """
93
- return list(self.__entries.keys())
94
-
95
- @property
96
- def _members(self):
97
- return list(self.__entries.values())
98
-
99
- @property
100
- def _annotations(self):
101
- return list(self.__annotations.values())
102
-
103
- @property
104
- def items(self):
105
- """Returns the items in this argument pack.
106
-
107
- Example::
108
-
109
- >>> vec3 = ti.types.vector(3, ti.f32)
110
- >>> sphere_pack = ti.ArgPackType(center=vec3, radius=ti.f32)
111
- >>> sphere = sphere_pack(center=vec3([0, 0, 0]), radius=1.0)
112
- >>> sphere.items
113
- dict_items([('center', 2), ('radius', 1.0)])
114
- """
115
- return self.__entries.items()
116
-
117
- def __getitem__(self, key):
118
- ret = self.__entries[key]
119
- return ret
120
-
121
- def __setitem__(self, key, value):
122
- self.__entries[key] = value
123
- index = self._calc_element_true_index(list(self.__annotations).index(key))
124
- self._write_to_device(self.__annotations[key], type(value), value, index)
125
-
126
- def _set_entries(self, value):
127
- if isinstance(value, dict):
128
- value = ArgPack(self.__annotations, value)
129
- for k in self.keys:
130
- self[k] = value[k]
131
-
132
- @staticmethod
133
- def _make_getter(key):
134
- def getter(self):
135
- """Get an entry from custom argument pack by name."""
136
- return self[key]
137
-
138
- return getter
139
-
140
- @staticmethod
141
- def _make_setter(key):
142
- @python_scope
143
- def setter(self, value):
144
- self[key] = value
145
-
146
- return setter
147
-
148
- def _register_members(self):
149
- # https://stackoverflow.com/questions/48448074/adding-a-property-to-an-existing-object-instance
150
- cls = self.__class__
151
- new_cls_name = cls.__name__ + str(cls._instance_count)
152
- cls._instance_count += 1
153
- properties = {k: property(cls._make_getter(k), cls._make_setter(k)) for k in self.keys}
154
- self.__class__ = type(new_cls_name, (cls,), properties)
155
-
156
- def __len__(self):
157
- """Get the number of entries in a custom argument pack."""
158
- return len(self.__entries)
159
-
160
- def __iter__(self):
161
- return self.__entries.values()
162
-
163
- def __str__(self):
164
- """Python scope argument pack array print support."""
165
- if impl.inside_kernel():
166
- item_str = ", ".join([str(k) + "=" + str(v) for k, v in self.items])
167
- return f"<ti.ArgPack {item_str}>"
168
- return str(self.to_dict())
169
-
170
- def __repr__(self):
171
- return str(self.to_dict())
172
-
173
- def to_dict(self):
174
- """Converts the ArgPack to a dictionary.
175
-
176
- Returns:
177
- Dict: The result dictionary.
178
- """
179
- res_dict = {
180
- k: v.to_dict() if isinstance(v, ArgPack) else v.to_list() if isinstance(v, Matrix) else v
181
- for k, v in self.__entries.items()
182
- }
183
- return res_dict
184
-
185
- def _calc_element_true_index(self, old_index):
186
- for i in range(old_index):
187
- anno = list(self.__annotations.values())[i]
188
- if (
189
- isinstance(anno, sparse_matrix_builder)
190
- or isinstance(anno, ndarray_type.NdarrayType)
191
- or isinstance(anno, texture_type.TextureType)
192
- or isinstance(anno, texture_type.RWTextureType)
193
- or isinstance(anno, ndarray_type.NdarrayType)
194
- ):
195
- old_index -= 1
196
- return old_index
197
-
198
- def _write_to_device(self, needed, provided, v, index):
199
- if isinstance(needed, ArgPackType):
200
- if not isinstance(v, ArgPack):
201
- raise GsTaichiRuntimeTypeError.get(index, str(needed), str(provided))
202
- self.__argpack.set_arg_nested_argpack(index, v.__argpack)
203
- else:
204
- # Note: do not use sth like "needed == f32". That would be slow.
205
- if id(needed) in primitive_types.real_type_ids:
206
- if not isinstance(v, (float, int, np.floating, np.integer)):
207
- raise GsTaichiRuntimeTypeError.get(index, needed.to_string(), provided)
208
- self.__argpack.set_arg_float((index,), float(v))
209
- elif id(needed) in primitive_types.integer_type_ids:
210
- if not isinstance(v, (int, np.integer)):
211
- raise GsTaichiRuntimeTypeError.get(index, needed.to_string(), provided)
212
- if is_signed(cook_dtype(needed)):
213
- self.__argpack.set_arg_int((index,), int(v))
214
- else:
215
- self.__argpack.set_arg_uint((index,), int(v))
216
- elif isinstance(needed, sparse_matrix_builder):
217
- pass
218
- elif isinstance(needed, ndarray_type.NdarrayType) and isinstance(v, gstaichi.lang._ndarray.Ndarray):
219
- pass
220
- elif isinstance(needed, texture_type.TextureType) and isinstance(v, gstaichi.lang._texture.Texture):
221
- pass
222
- elif isinstance(needed, texture_type.RWTextureType) and isinstance(v, gstaichi.lang._texture.Texture):
223
- pass
224
- elif isinstance(needed, ndarray_type.NdarrayType):
225
- pass
226
- elif isinstance(needed, MatrixType):
227
- if needed.dtype in primitive_types.real_types:
228
-
229
- def cast_func(x):
230
- if not isinstance(x, (int, float, np.integer, np.floating)):
231
- raise GsTaichiRuntimeTypeError.get(index, needed.dtype.to_string(), type(x))
232
- return float(x)
233
-
234
- elif needed.dtype in primitive_types.integer_types:
235
-
236
- def cast_func(x):
237
- if not isinstance(x, (int, np.integer)):
238
- raise GsTaichiRuntimeTypeError.get(index, needed.dtype.to_string(), type(x))
239
- return int(x)
240
-
241
- else:
242
- raise ValueError(f"Matrix dtype {needed.dtype} is not integer type or real type.")
243
-
244
- if needed.ndim == 2:
245
- v = [cast_func(v[i, j]) for i in range(needed.n) for j in range(needed.m)]
246
- else:
247
- v = [cast_func(v[i]) for i in range(needed.n)]
248
- v = needed(*v)
249
- needed.set_argpack_struct_args(v, self.__argpack, (index,))
250
- elif isinstance(needed, StructType):
251
- if not isinstance(v, needed):
252
- raise GsTaichiRuntimeTypeError.get(index, str(needed), provided)
253
- needed.set_argpack_struct_args(v, self.__argpack, (index,))
254
- else:
255
- raise ValueError(f"Argument type mismatch. Expecting {needed}, got {type(v)}.")
256
-
257
-
258
- class _IntermediateArgPack(ArgPack):
259
- """Intermediate argument pack class for compiler internal use only.
260
-
261
- Args:
262
- annotations (Dict[str, Union[Expr, Matrix, Struct]]): keys and types for struct members.
263
- entries (Dict[str, Union[Expr, Matrix, Struct]]): keys and values for struct members.
264
- """
265
-
266
- def __init__(self, annotations, dtype, *args, **kwargs):
267
- # converts dicts to argument packs
268
- if len(args) == 1 and kwargs == {} and isinstance(args[0], dict):
269
- self._ArgPack__entries = args[0]
270
- elif len(args) == 0:
271
- self._ArgPack__entries = kwargs
272
- else:
273
- raise GsTaichiSyntaxError(
274
- "Custom argument packs need to be initialized using either dictionary or keyword arguments"
275
- )
276
- if annotations.keys() != self._ArgPack__entries.keys():
277
- raise GsTaichiSyntaxError("ArgPack annotations keys not equals to entries keys.")
278
- self._ArgPack__annotations = annotations
279
- self._register_members()
280
- self._ArgPack__dtype = dtype
281
- self._ArgPack__argpack = impl.get_runtime().prog.create_argpack(dtype)
282
-
283
- def __del__(self):
284
- pass
285
-
286
-
287
- class ArgPackType(CompoundType):
288
- def __init__(self, **kwargs):
289
- self.members = {}
290
- elements = []
291
- for k, dtype in kwargs.items():
292
- if isinstance(dtype, StructType):
293
- self.members[k] = dtype
294
- elements.append([dtype.dtype, k])
295
- elif isinstance(dtype, ArgPackType):
296
- self.members[k] = dtype
297
- elements.append(
298
- [
299
- _ti_core.DataTypeCxx(
300
- _ti_core.get_type_factory_instance().get_struct_type_for_argpack_ptr(dtype.dtype)
301
- ),
302
- k,
303
- ]
304
- )
305
- elif isinstance(dtype, MatrixType):
306
- # Convert MatrixType to StructType
307
- if dtype.ndim == 1:
308
- elements_ = [(dtype.dtype, f"{k}_{i}") for i in range(dtype.n)]
309
- else:
310
- elements_ = [(dtype.dtype, f"{k}_{i}_{j}") for i in range(dtype.n) for j in range(dtype.m)]
311
- self.members[k] = dtype
312
- elements.append([_ti_core.get_type_factory_instance().get_struct_type(elements_), k])
313
- elif isinstance(dtype, sparse_matrix_builder):
314
- self.members[k] = dtype
315
- elif isinstance(dtype, ndarray_type.NdarrayType):
316
- self.members[k] = dtype
317
- elif isinstance(dtype, texture_type.RWTextureType):
318
- self.members[k] = dtype
319
- elif isinstance(dtype, texture_type.TextureType):
320
- self.members[k] = dtype
321
- else:
322
- dtype = cook_dtype(dtype)
323
- self.members[k] = dtype
324
- elements.append([dtype, k])
325
- if len(elements) == 0:
326
- # Use i32 as a placeholder for empty argpacks
327
- elements.append([primitive_types.i32, k])
328
- self.dtype = _ti_core.get_type_factory_instance().get_argpack_type(elements)
329
-
330
- def __call__(self, *args, **kwargs):
331
- """Create an instance of this argument pack type."""
332
- d = {}
333
- items = self.members.items()
334
- # iterate over the members of this argument pack
335
- for index, pair in enumerate(items):
336
- name, dtype = pair # (member name, member type))
337
- if index < len(args): # set from args
338
- data = args[index]
339
- else: # set from kwargs
340
- data = kwargs.get(name, None)
341
-
342
- # If dtype is CompoundType and data is a scalar, it cannot be
343
- # casted in the self.cast call later. We need an initialization here.
344
- if isinstance(dtype, CompoundType) and not isinstance(data, (dict, ArgPack, Struct)):
345
- data = dtype(data)
346
-
347
- d[name] = data
348
-
349
- entries = ArgPack(self.members, self.dtype, d)
350
- pack = self.cast(entries)
351
- return pack
352
-
353
- def __instancecheck__(self, instance):
354
- if not isinstance(instance, ArgPack):
355
- return False
356
- if list(self.members.keys()) != list(instance._ArgPack__entries.keys()):
357
- return False
358
- for k, v in self.members.items():
359
- if isinstance(v, ArgPackType):
360
- if not isinstance(instance._ArgPack__entries[k], v):
361
- return False
362
- elif instance._ArgPack__annotations[k] != v:
363
- return False
364
- return True
365
-
366
- def cast(self, pack):
367
- # sanity check members
368
- if self.members.keys() != pack._ArgPack__entries.keys():
369
- raise GsTaichiSyntaxError("Incompatible arguments for custom argument pack members!")
370
- entries = {}
371
- for k, dtype in self.members.items():
372
- if isinstance(dtype, MatrixType):
373
- entries[k] = dtype(pack._ArgPack__entries[k])
374
- elif isinstance(dtype, CompoundType):
375
- entries[k] = dtype.cast(pack._ArgPack__entries[k])
376
- elif isinstance(dtype, ArgPackType):
377
- entries[k] = dtype.cast(pack._ArgPack__entries[k])
378
- elif isinstance(dtype, ndarray_type.NdarrayType):
379
- entries[k] = pack._ArgPack__entries[k]
380
- elif isinstance(dtype, texture_type.RWTextureType):
381
- entries[k] = pack._ArgPack__entries[k]
382
- elif isinstance(dtype, texture_type.TextureType):
383
- entries[k] = pack._ArgPack__entries[k]
384
- elif isinstance(dtype, sparse_matrix_builder):
385
- entries[k] = pack._ArgPack__entries[k]
386
- else:
387
- if in_python_scope():
388
- v = pack._ArgPack__entries[k]
389
- entries[k] = int(v) if dtype in primitive_types.integer_types else float(v)
390
- else:
391
- entries[k] = ops.cast(pack._ArgPack__entries[k], dtype)
392
- pack = ArgPack(self.members, self.dtype, entries)
393
- return pack
394
-
395
- def from_gstaichi_object(self, arg_load_dict: dict):
396
- d = {}
397
- items = self.members.items()
398
- for index, pair in enumerate(items):
399
- name, dtype = pair
400
- d[name] = arg_load_dict[name]
401
- pack = _IntermediateArgPack(self.members, self.dtype, d)
402
- pack._ArgPack__dtype = self.dtype
403
- return pack
404
-
405
- def __str__(self):
406
- """Python scope argpack type print support."""
407
- item_str = ", ".join([str(k) + "=" + str(v) for k, v in self.members.items()])
408
- return f"<ti.ArgPackType {item_str}>"
409
-
410
-
411
- __all__ = ["ArgPack"]
@@ -1,138 +0,0 @@
1
- gstaichi/CHANGELOG.md,sha256=Tc9M_4J7QkTCepb08C1W2E0LVZH5YWkGczrhi78AnSE,446
2
- gstaichi/__init__.py,sha256=ElfSJalp91BnNCfQX12hjt_eYFuOoNrcS4f1-JPlSm8,1043
3
- gstaichi/__main__.py,sha256=OW87w7o1iQm9wxO2L280yT9owYxXBxpw9uFle4xNLg4,53
4
- gstaichi/_funcs.py,sha256=u0o3F7Yq6r2dxkimThby4rvceRjUGajaLyzkPtwMJgM,23943
5
- gstaichi/_kernels.py,sha256=3R9_Ht0q1BSku-Jslvf5eYQY2bD8vFS5ZvL-im_iLPs,14664
6
- 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
9
- gstaichi/_version_check.py,sha256=s_t4ZEajc4Uw4RTjm2QS-gSfDsjXe32NHKDwWNFiQHw,3756
10
- gstaichi/experimental.py,sha256=SwtoqhUcSxCSea-sT10G-GgZaTcSWUNPmTACK0MCHH4,359
11
- gstaichi/_lib/__init__.py,sha256=rsFUVL8_2_eyK2Z4MiP6NvLIEykG1fsK8l1WZNQa3ko,74
12
- gstaichi/_lib/utils.py,sha256=H7nEqcw_l7BGzXKEomjhovhQuHgZzQBUcXYiaS7_H5E,8090
13
- gstaichi/_lib/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- gstaichi/_lib/core/gstaichi_python.cp313-win_amd64.pyd,sha256=_S9poNlYULPT2D0Uq1HmNtPd0Q4ee4O0PisOVNigMEo,71151616
15
- gstaichi/_lib/core/gstaichi_python.pyi,sha256=4ok1bHJQ9JF9veM1Ilxw_eo9jSPczdQ47eGrBozFdso,114279
16
- gstaichi/_lib/core/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- gstaichi/_lib/runtime/runtime_cuda.bc,sha256=hA22GTBD0WH6F_yGSFkC0MQTiWekh4hrR3cUzP-m3zQ,155520
18
- gstaichi/_lib/runtime/runtime_x64.bc,sha256=AmkyoH51ja6s3TbRCsuIbK0H0M1Jp5CAjBjJyAYU5pk,140112
19
- gstaichi/_lib/runtime/slim_libdevice.10.bc,sha256=9dlDFXMV4uIAIKy-1yU7ppNV_oMdIHDR9YqOT_7sfaw,171892
20
- gstaichi/_snode/__init__.py,sha256=ufrWH-RIsTEFT_2Io4dQiWRPTLDrC37RpXpBp38LHq8,107
21
- gstaichi/_snode/fields_builder.py,sha256=nl272xfq6sbNbM3DHXm6y4MNM8LhhPGENFbyfjxpNVM,6950
22
- gstaichi/_snode/snode_tree.py,sha256=MFrrz6_4MtkYP4UzFur1YwMIizyA5hXYraQukTi3QcI,1231
23
- gstaichi/_test_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- gstaichi/_test_tools/load_kernel_string.py,sha256=PfYrMVzL3PfTQhpZebDxipa_lmwA8lcVDsvQ1p1bmnw,1037
25
- gstaichi/ad/__init__.py,sha256=OZJX0DpEa8iivSWi3R_BUmmbTaUUFKYPEvCsmJaFhV4,49
26
- gstaichi/ad/_ad.py,sha256=9la_eRa0ipYRvr32InLOuk1I9ePc0tGCf82xs_poXwQ,19742
27
- gstaichi/algorithms/__init__.py,sha256=ueWUSLoLUkh4k-deNS3dxRi9QYNIrtwxNveYb5vaJkE,46
28
- gstaichi/algorithms/_algorithms.py,sha256=7ZBfgVexL4mIMny1WU4JEGJz7r-hx8DwnYhPbgVRbq4,3822
29
- gstaichi/assets/.git,sha256=_sepXJOH-4A9o4jtu-46jG2P6XHHbsvGW3642aKNQBc,43
30
- gstaichi/assets/Go-Regular.ttf,sha256=S7gpWTE2QWxqOezcRUguBS91rDdOZFm5r2jU-6J5OWw,134988
31
- gstaichi/assets/static/imgs/ti_gallery.png,sha256=rOeh8JlUXb-ZdkTaei3cVyJXZBWOqcJBLdndAORUdtU,263871
32
- gstaichi/examples/minimal.py,sha256=y_VNNL6VVANEJmcs63HlcnFPPA6wDiaZ9mhkDkRR2UI,633
33
- gstaichi/lang/__init__.py,sha256=sVuMTxF3yxCn7CfpOaOLFhnygvtVXM8yPjJA1B5Of3M,1306
34
- gstaichi/lang/_ndarray.py,sha256=MW-Tb6o8U6qUFz_06n3LL1Y-VRTuwVMLZfWkosEu9nk,11126
35
- gstaichi/lang/_ndrange.py,sha256=ATLSTdjdMGXcz3jCn2vkaaDGUglK5I4M9mwk4gJCLx8,5921
36
- gstaichi/lang/_template_mapper.py,sha256=GDmuDmPIzafaNHFMhv6bZPxLIu2IEsonWnaOWTnI5F0,10313
37
- gstaichi/lang/_texture.py,sha256=fGIPeGFZz1DO-RAUuEAiwSJIRN8o-7wgZi1URR4UFOw,6784
38
- gstaichi/lang/_wrap_inspect.py,sha256=X1-XraGsweCstb0NJc7AG_9rqymg4yZ0u8eXFXxUIHU,7175
39
- gstaichi/lang/any_array.py,sha256=Uq5K-QZjWgBNvYBXlL831r96MPtEPF5jFTTHrAmrhFY,3391
40
- gstaichi/lang/argpack.py,sha256=Dzp4UnX7fR3BAfcsHXnlI2zuvvEH5GOZ8RSNZwatkso,17188
41
- gstaichi/lang/common_ops.py,sha256=bIGmalXVnxVc5mw-k704zFwr38bR9uZx_4ieNS3PYpQ,8768
42
- gstaichi/lang/exception.py,sha256=f-EWm56Px6TpskhCgEReqoY8meg_-4nZD9vFOA5TVic,2165
43
- gstaichi/lang/expr.py,sha256=bSWJyNJ55Xnv7mADHxKRhwH0lB2cXnRi9EpCrHgElLY,6587
44
- gstaichi/lang/field.py,sha256=LeI7G9QXPoKz9_vPQWw6L5TZxP8rK7AnrO4Yu6_TiHQ,14890
45
- gstaichi/lang/impl.py,sha256=Ryz9x5i4_vswEHN1Mk3d7Ow9uF2mVRq0mKwj-YY-BPE,42729
46
- gstaichi/lang/kernel_arguments.py,sha256=3xKeGT6NsPNtdtdqdWQj2SnWa2Q3MefoZHs9Ik_eXuQ,6564
47
- gstaichi/lang/kernel_impl.py,sha256=MnSbJrnJLfApxSD-81gXZ21awYjSDIxMOv_FvGOwjCQ,62593
48
- gstaichi/lang/matrix.py,sha256=rlev6uB45vSnLmpiCY8hkAtFCPJZGvpPIVfhm9JHE1s,65707
49
- gstaichi/lang/matrix_ops.py,sha256=v89ID3thZ8irSLU9Tyf1hmEdQTjGyMHWqvfzsvnFxGo,10399
50
- gstaichi/lang/matrix_ops_utils.py,sha256=rrrC5KjmCt1w0ZNtLWqo5ZOjZNR74iqGjuVfHvqwwxg,5435
51
- gstaichi/lang/mesh.py,sha256=ukqJYWSf3ANPoiV4Ue-DWMPZ0y21bGrhEUseVAIJK4w,27758
52
- gstaichi/lang/misc.py,sha256=FmOZ9MPcMzsCrZ8ZDGKHAbi2wlZZTKNiRLvjm0Cwwjs,24080
53
- gstaichi/lang/ops.py,sha256=zKwfBLQrdnyyoHflIUe9DY3BQ2wQusfRrDLPRyAThpk,45919
54
- gstaichi/lang/runtime_ops.py,sha256=TKlPOBMWGGg0jQZFlik4f5c1Do5cUlhEMk6r4VlOfvM,237
55
- gstaichi/lang/shell.py,sha256=k9YPpByujyHis2Vv-oHSJowQAhhS1Iic9Oa7JKhy584,1095
56
- gstaichi/lang/snode.py,sha256=3e6Uqr3SCDQUOhNLgZFbSsVve36ZKdCX9ebc6kU2jDA,17613
57
- gstaichi/lang/source_builder.py,sha256=ytBdJbFzcccD2ekVvy-v8YrllNEcSM1RRMUe-FWENI0,5959
58
- gstaichi/lang/struct.py,sha256=vijHpCZWCu3R-SDYLvrsttm_o5Jo45WchbRB2QES4cY,32024
59
- gstaichi/lang/util.py,sha256=DidKh5GfRXnbkHSdxhwmFRRdoQVmFVjdj4NfKAZJy3c,9496
60
- gstaichi/lang/ast/__init__.py,sha256=uPDw6vJparMHLQIaPM4zY5YfKZ7puJtiDd_z41qKYlk,216
61
- gstaichi/lang/ast/ast_transformer.py,sha256=I3F1ti2wl0cQK73TaLTx3OKz3KwYga8XnPHhUDTdpnI,59439
62
- gstaichi/lang/ast/ast_transformer_utils.py,sha256=cmXoJ5h-mgXEUcd_D8axlIJCs0ZfX8cJhIzKCK-E6BA,11858
63
- gstaichi/lang/ast/checkers.py,sha256=Lckg_gHzJyXTWVLYdp2HKBJxVygXwc1E2C8D_XTsL2k,3906
64
- gstaichi/lang/ast/symbol_resolver.py,sha256=BtTp-U36tLZwbZVHI7Cq5-6GmrnaWdqC6S7SiWD4t4Q,1829
65
- gstaichi/lang/ast/transform.py,sha256=z28ji4mXsZ8Q9LmvaOkHu3BuE1m_opTaCMuP56ptvxQ,275
66
- gstaichi/lang/ast/ast_transformers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
- gstaichi/lang/ast/ast_transformers/call_transformer.py,sha256=CKY_DpjYaUUefpPLWDYsB4MXpzSx-ny1iOH1HWP-UlM,11176
68
- gstaichi/lang/ast/ast_transformers/function_def_transformer.py,sha256=J7po65GXrp9P27AJ12RTIJgLPd8VTKoFrZ12R0wtNko,13414
69
- gstaichi/lang/simt/__init__.py,sha256=63Z2qOmwx3hq1PdnJTCmwuKGIT9c24lFX_HgCtXMEJY,129
70
- gstaichi/lang/simt/block.py,sha256=2L0u67bFYfTamprexNwAD_7-ICClVshiZKeFsflXS60,3733
71
- gstaichi/lang/simt/grid.py,sha256=9ZG9nokauer_2U3pF1xs6g3vmESJW1Tc0WlprjiTPio,147
72
- gstaichi/lang/simt/subgroup.py,sha256=1remFLCKn7lCjCu_aoJi_61AbmSCip4MrDCRvoGWvHs,3972
73
- gstaichi/lang/simt/warp.py,sha256=7G5jvLK3LG7UtUrxWPFaTevWHKTcMMcQfswcoAZxnvs,3183
74
- gstaichi/linalg/__init__.py,sha256=ATOotbLKPXXj4oK5eJo1mw3MpxI9G5Jl-ZOYz2ix8d0,275
75
- gstaichi/linalg/matrixfree_cg.py,sha256=6di4ukw0Fria0YbIQD2NThN9Ug-sLL676hpwI9nPihY,10648
76
- gstaichi/linalg/sparse_cg.py,sha256=dIib4CX7VrcmNDMQQ-GbFbEOMGbz_-qYiY9m2z7owyA,2617
77
- gstaichi/linalg/sparse_matrix.py,sha256=S-kiQHjMbaMLOtOL0xjwulIv-4GV7traEZNYr3EVoXU,11274
78
- gstaichi/linalg/sparse_solver.py,sha256=3xn47VgRq2VrmZE7jORWPEjwEIs4IoARZE_MMzUdsd8,5051
79
- gstaichi/math/__init__.py,sha256=SNSKaPVXAJkxxA1DKV_SbgGL4m52Jli-w-nKPa6StNI,214
80
- gstaichi/math/_complex.py,sha256=-xUZbUc9EZk53u7x3x9W4KLOEq-hzdWk5AHwMm_7x4E,5185
81
- gstaichi/math/mathimpl.py,sha256=pFH_VOOeRyMYT1BBR6m017VhMKlWV0awiseasJFD8HI,22619
82
- gstaichi/profiler/__init__.py,sha256=TK0K83FmQpSYArY8elycQujea_zCZApG9-dRHdnPUz0,213
83
- gstaichi/profiler/kernel_metrics.py,sha256=zGSi38qKf1t1NxIx4RUFy_BNo42MlCmIQ4e7CpSf_5c,7883
84
- gstaichi/profiler/kernel_profiler.py,sha256=xIwgVdjGitwpLOkSVUXS0ThcPmN66q7ORJKWI9w_Q1w,22862
85
- gstaichi/profiler/memory_profiler.py,sha256=AW8ekyrdBqKV9uQJq7EdTBAx6Ytf8qblYllVY5H-6tk,358
86
- gstaichi/profiler/scoped_profiler.py,sha256=E9XaqWJkHS9-S_qPWmH0OoAgnAaqKoTlUQBqJMuhSv4,1007
87
- gstaichi/sparse/__init__.py,sha256=7VN50pijO_9Z498YrtApTIMR6FjZ_LQPlftUBajudMQ,47
88
- gstaichi/sparse/_sparse_grid.py,sha256=y8hSerL3ti7xgmIsXn3jSz0uboqYux2kGD2V1GIzG7g,2509
89
- gstaichi/tools/__init__.py,sha256=tR6azYK2JhYiPNP-r_Phi8bG6bfT_hSp6xfs8yECMiI,329
90
- gstaichi/tools/diagnose.py,sha256=OZCQk_E5ijCXgBjSkUk3dDwenlQWXd-SLFBAgT4drHk,3565
91
- gstaichi/tools/np2ply.py,sha256=2hJKNZvpoHCh8PBKXWBjkBCUu_q1U6L4eAmKdRBXUbg,15635
92
- gstaichi/tools/vtk.py,sha256=ziOsTJI4AaDy1OxNxsU2pi98J3_QXqkEJwTwMRsYJoM,1070
93
- gstaichi/types/__init__.py,sha256=mb4cL9OIiq2QosRoQIAYblE7CX_I2cH09NihtwMbh_s,621
94
- gstaichi/types/annotations.py,sha256=UBbmQ4VAGpWyRdz3m4iBfv9ipCtxiXTvnxH3PTV78rw,1039
95
- gstaichi/types/compound_types.py,sha256=YbWW8o9yrbSIb24nT6UPnrbU-IBkX1QUfKXiqbNSLM4,2479
96
- gstaichi/types/enums.py,sha256=U6b2fXrIhBkYtWzz5IFmCNUndx8M-nyCP8nEUgr0l04,2099
97
- gstaichi/types/ndarray_type.py,sha256=WX3Vz8xJ2yBnWNQko3o9qBnSbjnpX-2NftlcjrFO2x8,6967
98
- gstaichi/types/primitive_types.py,sha256=otvV6aBEtMANfjiPaDjl2oB6_7yOsrkgwDkMgg73i_c,4273
99
- gstaichi/types/quant.py,sha256=orvn3oskYlhDd5Hln-Bt-oe0EXsPNjfOznMOCBEf1ak,3061
100
- gstaichi/types/texture_type.py,sha256=wWhaDNwOQwdMSnxCzXsltr3bWLmreOC9DvEVUV0vIAI,2444
101
- 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,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- ti = gstaichi._main:main