sonolus.py 0.1.9__py3-none-any.whl → 0.2.0__py3-none-any.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.

Potentially problematic release.


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

Files changed (42) hide show
  1. sonolus/backend/optimize/constant_evaluation.py +2 -2
  2. sonolus/backend/optimize/optimize.py +12 -4
  3. sonolus/backend/optimize/passes.py +2 -1
  4. sonolus/backend/place.py +95 -14
  5. sonolus/backend/visitor.py +51 -3
  6. sonolus/build/cli.py +60 -9
  7. sonolus/build/collection.py +68 -26
  8. sonolus/build/compile.py +85 -27
  9. sonolus/build/engine.py +166 -40
  10. sonolus/build/node.py +8 -1
  11. sonolus/build/project.py +30 -11
  12. sonolus/script/archetype.py +110 -26
  13. sonolus/script/array.py +11 -0
  14. sonolus/script/debug.py +2 -2
  15. sonolus/script/effect.py +2 -2
  16. sonolus/script/engine.py +123 -15
  17. sonolus/script/internal/builtin_impls.py +21 -2
  18. sonolus/script/internal/constant.py +5 -1
  19. sonolus/script/internal/context.py +30 -25
  20. sonolus/script/internal/math_impls.py +2 -1
  21. sonolus/script/internal/transient.py +4 -0
  22. sonolus/script/internal/value.py +6 -0
  23. sonolus/script/interval.py +16 -0
  24. sonolus/script/iterator.py +17 -0
  25. sonolus/script/level.py +113 -10
  26. sonolus/script/metadata.py +32 -0
  27. sonolus/script/num.py +9 -0
  28. sonolus/script/options.py +5 -3
  29. sonolus/script/pointer.py +2 -0
  30. sonolus/script/project.py +41 -5
  31. sonolus/script/record.py +7 -2
  32. sonolus/script/runtime.py +61 -10
  33. sonolus/script/sprite.py +18 -1
  34. sonolus/script/ui.py +7 -3
  35. sonolus/script/values.py +8 -5
  36. sonolus/script/vec.py +28 -0
  37. {sonolus_py-0.1.9.dist-info → sonolus_py-0.2.0.dist-info}/METADATA +3 -2
  38. {sonolus_py-0.1.9.dist-info → sonolus_py-0.2.0.dist-info}/RECORD +42 -41
  39. {sonolus_py-0.1.9.dist-info → sonolus_py-0.2.0.dist-info}/WHEEL +1 -1
  40. /sonolus/script/{print.py → printing.py} +0 -0
  41. {sonolus_py-0.1.9.dist-info → sonolus_py-0.2.0.dist-info}/entry_points.txt +0 -0
  42. {sonolus_py-0.1.9.dist-info → sonolus_py-0.2.0.dist-info}/licenses/LICENSE +0 -0
sonolus/script/sprite.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from dataclasses import dataclass
2
+ from enum import StrEnum
2
3
  from typing import Annotated, Any, NewType, dataclass_transform, get_origin
3
4
 
4
5
  from sonolus.backend.ops import Op
@@ -269,6 +270,19 @@ def sprite(name: str) -> Any:
269
270
  type Skin = NewType("Skin", Any)
270
271
 
271
272
 
273
+ class RenderMode(StrEnum):
274
+ """Render mode for sprites."""
275
+
276
+ DEFAULT = "default"
277
+ """Use the user's preferred render mode."""
278
+
279
+ STANDARD = "standard"
280
+ """Use the standard render mode with bilinear interpolation of textures."""
281
+
282
+ LIGHTWEIGHT = "lightweight"
283
+ """Use the lightweight render mode with projective interpolation of textures."""
284
+
285
+
272
286
  @dataclass_transform()
273
287
  def skin[T](cls: type[T]) -> T | Skin:
274
288
  """Decorator to define a skin.
@@ -277,6 +291,8 @@ def skin[T](cls: type[T]) -> T | Skin:
277
291
  ```python
278
292
  @skin
279
293
  class Skin:
294
+ render_mode: RenderMode
295
+
280
296
  note: StandardSprite.NOTE_HEAD_RED
281
297
  other: Sprite = skin_sprite("other")
282
298
  ```
@@ -285,7 +301,7 @@ def skin[T](cls: type[T]) -> T | Skin:
285
301
  raise ValueError("Skin class must not inherit from any class (except object)")
286
302
  instance = cls()
287
303
  names = []
288
- for i, (name, annotation) in enumerate(get_field_specifiers(cls).items()):
304
+ for i, (name, annotation) in enumerate(get_field_specifiers(cls, skip={"render_mode"}).items()):
289
305
  if get_origin(annotation) is not Annotated:
290
306
  raise TypeError(f"Invalid annotation for skin: {annotation}")
291
307
  annotation_type = annotation.__args__[0]
@@ -298,6 +314,7 @@ def skin[T](cls: type[T]) -> T | Skin:
298
314
  names.append(sprite_name)
299
315
  setattr(instance, name, Sprite(i))
300
316
  instance._sprites_ = names
317
+ instance.render_mode = RenderMode(getattr(instance, "render_mode", RenderMode.DEFAULT))
301
318
  instance._is_comptime_value_ = True
302
319
  return instance
303
320
 
sonolus/script/ui.py CHANGED
@@ -120,8 +120,8 @@ class UiAnimation:
120
120
  alpha: The animation applied to alpha.
121
121
  """
122
122
 
123
- scale: UiAnimationTween = field(default_factory=lambda: UiAnimationTween(1, 1, 0, "none"))
124
- alpha: UiAnimationTween = field(default_factory=lambda: UiAnimationTween(1, 0, 0.2, "outCubic"))
123
+ scale: UiAnimationTween
124
+ alpha: UiAnimationTween
125
125
 
126
126
  def to_dict(self):
127
127
  return {
@@ -183,7 +183,11 @@ class UiConfig:
183
183
  progress_visibility: UiVisibility = field(default_factory=UiVisibility)
184
184
  tutorial_navigation_visibility: UiVisibility = field(default_factory=UiVisibility)
185
185
  tutorial_instruction_visibility: UiVisibility = field(default_factory=UiVisibility)
186
- judgment_animation: UiAnimation = field(default_factory=UiAnimation)
186
+ judgment_animation: UiAnimation = field(
187
+ default_factory=lambda: UiAnimation(
188
+ scale=UiAnimationTween(0, 1, 0.1, EaseType.OUT_CUBIC), alpha=UiAnimationTween(1, 0, 0.3, EaseType.NONE)
189
+ )
190
+ )
187
191
  combo_animation: UiAnimation = field(
188
192
  default_factory=lambda: UiAnimation(
189
193
  scale=UiAnimationTween(1.2, 1, 0.2, EaseType.IN_CUBIC), alpha=UiAnimationTween(1, 1, 0, EaseType.NONE)
sonolus/script/values.py CHANGED
@@ -19,11 +19,7 @@ def alloc[T](type_: type[T]) -> T:
19
19
  @meta_fn
20
20
  def zeros[T](type_: type[T]) -> T:
21
21
  """Make a new instance of the given type initialized with zeros."""
22
- type_ = validate_concrete_type(type_)
23
- if ctx():
24
- return copy(type_._from_list_([0] * type_._size_()))
25
- else:
26
- return type_._from_list_([0] * type_._size_())._as_py_()
22
+ return validate_concrete_type(type_)._zero_()
27
23
 
28
24
 
29
25
  @meta_fn
@@ -34,3 +30,10 @@ def copy[T](value: T) -> T:
34
30
  return value._copy_()
35
31
  else:
36
32
  return value._copy_()._as_py_()
33
+
34
+
35
+ def swap[T](a: T, b: T):
36
+ """Swap the values of the given variables."""
37
+ temp = copy(a)
38
+ a @= b
39
+ b @= temp
sonolus/script/vec.py CHANGED
@@ -128,6 +128,25 @@ class Vec2(Record):
128
128
  """
129
129
  return (self - pivot).rotate(angle) + pivot
130
130
 
131
+ def normalize(self) -> Self:
132
+ """Normalize the vector (set the magnitude to 1) and return a new vector.
133
+
134
+ Returns:
135
+ A new vector with magnitude 1.
136
+ """
137
+ magnitude = self.magnitude
138
+ return Vec2(x=self.x / magnitude, y=self.y / magnitude)
139
+
140
+ def orthogonal(self) -> Self:
141
+ """Return a vector orthogonal to this vector.
142
+
143
+ The orthogonal vector is rotated 90 degrees counter-clockwise from this vector.
144
+
145
+ Returns:
146
+ A new vector orthogonal to this vector.
147
+ """
148
+ return Vec2(x=-self.y, y=self.x)
149
+
131
150
  @property
132
151
  def tuple(self) -> tuple[float, float]:
133
152
  """Return the vector as a tuple (x, y).
@@ -173,6 +192,15 @@ class Vec2(Record):
173
192
  return Vec2(x=self.x * x, y=self.y * y)
174
193
  case Num(factor):
175
194
  return Vec2(x=self.x * factor, y=self.y * factor)
195
+ case _:
196
+ return NotImplemented
197
+
198
+ def __rmul__(self, other):
199
+ match other:
200
+ case Num(factor):
201
+ return Vec2(x=self.x * factor, y=self.y * factor)
202
+ case _:
203
+ return NotImplemented
176
204
 
177
205
  def __truediv__(self, other: Self | float) -> Self:
178
206
  """Divide this vector by another vector or a scalar and return a new vector.
@@ -1,7 +1,8 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: sonolus.py
3
- Version: 0.1.9
3
+ Version: 0.2.0
4
4
  Summary: Sonolus engine development in Python
5
+ License-File: LICENSE
5
6
  Requires-Python: >=3.12
6
7
  Description-Content-Type: text/markdown
7
8
 
@@ -9,81 +9,82 @@ sonolus/backend/ir.py,sha256=TCDLMvlX2S8emFDQwFVeD2OUC4fnhbrMObgYtoa_7PQ,2845
9
9
  sonolus/backend/mode.py,sha256=NkcPZJm8dn83LX35uP24MtQOCnfRDFZ280dHeEEfauE,613
10
10
  sonolus/backend/node.py,sha256=H8qgnNyIseR-DhfgtcbDX03SUmhAJSSrYAlUEJTkkUo,999
11
11
  sonolus/backend/ops.py,sha256=ekkHSdgRubIYLSYFk0wTUuBvyf3TKdApM4AyR_koTQ8,10122
12
- sonolus/backend/place.py,sha256=Z3yFx-Ki2z32MXsVb6TkZ_D95RyZCu8iJPQRXNiyiNg,2364
12
+ sonolus/backend/place.py,sha256=jABvLNNE-2pklTcb9WnyfHK8c-tYxn0ObsoLp5LYd5I,4703
13
13
  sonolus/backend/utils.py,sha256=9-mmCUwGlNdjp51jKrNBN2dGxCAXVV2PdJn031kaXHM,1717
14
- sonolus/backend/visitor.py,sha256=PRsF02Y664XrnBV_USQjtQ3ihqEeQR6zAcIRBTnhu18,46490
14
+ sonolus/backend/visitor.py,sha256=GvAEx8D3_YijTMUYBmir0IvDPAEpK1ObAuQOAcAMKm0,48157
15
15
  sonolus/backend/optimize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  sonolus/backend/optimize/allocate.py,sha256=LCqxvT8YsVGTaVAu58fb6lrrytVLWx1LNbcOfx8CqL8,5671
17
- sonolus/backend/optimize/constant_evaluation.py,sha256=ty3vNey7I44GK17lQA-3whkioFQGleYKD3P5a22foj0,15997
17
+ sonolus/backend/optimize/constant_evaluation.py,sha256=ozYB__haE2A_L2NBh2H3IT__Z65FBBtbjh6BJfQRC_A,15988
18
18
  sonolus/backend/optimize/copy_coalesce.py,sha256=4vUe-y2w8sGyrguSlp8O_p0uy9rEUu5M-smI0F5UMQw,4404
19
19
  sonolus/backend/optimize/dead_code.py,sha256=qYmUqBmAp-O5mUpNusOoMEJVkbc9YIHx6Ynrg6dyNGY,8077
20
20
  sonolus/backend/optimize/dominance.py,sha256=oTFUqN8twrw6lTzqr1nlYs-Gk1NzIa-4qGdEQvDGzlM,3217
21
21
  sonolus/backend/optimize/flow.py,sha256=mMf5Um2uxwF65nw13UiIv7dFMHZZHnyWv2WaOVnGw2c,4266
22
22
  sonolus/backend/optimize/inlining.py,sha256=jwTiuHivSq9bB7FfVbD9Wd_Ztaz8ml_5CRnikr2d6yU,5719
23
23
  sonolus/backend/optimize/liveness.py,sha256=c0ejVf1LNcYBlByf3rxkNs18IoXmiOdCFwEk3Afv8DE,7121
24
- sonolus/backend/optimize/optimize.py,sha256=oGPmsDD0FFNihhrpV9uSybkGHP3C_EU0Rpw6x7kvf8c,1329
25
- sonolus/backend/optimize/passes.py,sha256=OPzcpFUU7qbQFSrgr84UuzDg_vB1GYkZj2K2aqGkkag,1643
24
+ sonolus/backend/optimize/optimize.py,sha256=It_z8fAaTsG8bRNrvR5mQzVjmwZT5I1whBvy4F-Xoos,1473
25
+ sonolus/backend/optimize/passes.py,sha256=BQy-BovGu234Y12c-vpBmTaNNl9oeW4qZ8A3q5y5nLs,1684
26
26
  sonolus/backend/optimize/simplify.py,sha256=Tz4RftjH5TpIxoIOwiZuLchsrwzI9GaS_exdjAW6HKk,7927
27
27
  sonolus/backend/optimize/ssa.py,sha256=D3CQm3s3gcuU0_k_0pXVrwirm4xjAZsX6corrTDS1Co,9013
28
28
  sonolus/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- sonolus/build/cli.py,sha256=12sFalCUJmn0Dg3f8ipNIkPmZ_djG15gldqWzDG7AYo,6241
30
- sonolus/build/collection.py,sha256=IsDgedsAJ-foHzQ4LnQ9zSVXSz5wVVt4sgqiUICBvCU,10573
31
- sonolus/build/compile.py,sha256=WhMwamVSi64gxrbj2tBdznHCT9pVLdR5lZS9WDapzg4,3521
32
- sonolus/build/engine.py,sha256=TAJCdSWOsEcTq9o6jfR3A2JZ8gOoc9YQx6FC_qW-dFw,6766
29
+ sonolus/build/cli.py,sha256=zWkiY2frHHIk3nqP8XrzV1ez1zU67deNZ7WeFR5SfVo,8801
30
+ sonolus/build/collection.py,sha256=kOVnpQC_KHAsyTM4nAplSh6QE16CgO-H6PP1GItWm78,12187
31
+ sonolus/build/compile.py,sha256=nWtQRao_k-ChJhjmYFpPMRlPgxFI0t9wtMWSRHQcnbQ,5586
32
+ sonolus/build/engine.py,sha256=AYzJHRcYaR-PidR9eG6Tbr4Xz5-spHTOp4S9F4nm-UY,11178
33
33
  sonolus/build/level.py,sha256=AjvK4725nqDcg7oGn5kWocBdG-AcirXpku74T7c2epA,673
34
- sonolus/build/node.py,sha256=jwsVWt6Brh4M9MypUt3Nqnxfm7fXrCMRWYQGwBTAszI,1162
35
- sonolus/build/project.py,sha256=QukkCVQBGxnp1F2jQjaAkTg3TutwhWqKGXAfQZDMk1c,5162
34
+ sonolus/build/node.py,sha256=gnX71RYDUOK_gYMpinQi-bLWO4csqcfiG5gFmhxzSec,1330
35
+ sonolus/build/project.py,sha256=DhNqgHnm73qKUOhrg1JPlWEL0Vg7VxcGUbNokpMWzVE,6315
36
36
  sonolus/script/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- sonolus/script/archetype.py,sha256=LGECC__TXb5km5UVk64fQr8AqduxmADIcKOmx1Z4qAY,35340
38
- sonolus/script/array.py,sha256=C_LP-bgYfpd43pm_nFlG0x9ojov1qV9JCVJmKnUiqdo,9347
37
+ sonolus/script/archetype.py,sha256=UbIAn6xmCOUpp6Aa8Y_Bd85LhWglinG6o-TE0sRdLPw,38716
38
+ sonolus/script/array.py,sha256=mUOY0cbjbSBssQNwmJ4EbySmyUGg2I-lnLmqDKu8Vh8,9798
39
39
  sonolus/script/array_like.py,sha256=OVOLMadS-Jj941S-EgoxlFPdaQLT6ZrHzaMnKtB6PfU,8346
40
40
  sonolus/script/bucket.py,sha256=oaaB7OXtBWzr8sLzPOpm8-GMhs7FzEhYrI1uVcM0DHM,7453
41
41
  sonolus/script/containers.py,sha256=tf0-UUSq8NH6k9jIKq6qgXRxanFQ0f5olH6uHghTynk,13171
42
- sonolus/script/debug.py,sha256=ua8FM7h563ZMQp7oyjJRGzjjF0zi4xcnFhI3RgIdOSw,2443
42
+ sonolus/script/debug.py,sha256=-rFPOgtmGLjfBsCPzPKObb4t-x5VN3QYb2BznZGDMgI,2457
43
43
  sonolus/script/easing.py,sha256=7zaDKIfM_whUpb4FBz1DAF4NNG2vk_nDjl8kL2Y90aU,11396
44
- sonolus/script/effect.py,sha256=kFshJhpVh5XiRPYms30vhry7_P6bQMVEkZ1K90jprgk,5830
45
- sonolus/script/engine.py,sha256=WUCENp-G_12jN_QW-w1RJCJQrkyRbsVtB1z7OeNV2mQ,6975
44
+ sonolus/script/effect.py,sha256=V9bJvMzs1O4C1PjTOKgsAXov-l4AnDb2h38-DzmeWpI,5838
45
+ sonolus/script/engine.py,sha256=_5ZYPT4irTePjki16sFI7A8dzdm3kXAS7tvrp_ocG7Y,10661
46
46
  sonolus/script/globals.py,sha256=Z8RfLkgDuXPIKiq-aOqblP0s__ALGmvcKdlyWZH21EM,9166
47
47
  sonolus/script/instruction.py,sha256=PNfxC1dhT_hB0BxhDV3KXMn_kKxfI0t1iZmg8m6ddMU,6725
48
- sonolus/script/interval.py,sha256=3wMy7YlL6XV0g7w3eIDQDXl1WfTjW4NunKtwRxRMnDQ,9004
49
- sonolus/script/iterator.py,sha256=ZErUmpRrXISe1xiT3VOjHzcqqLhpfT9FI7Kz2s2vUpk,4163
50
- sonolus/script/level.py,sha256=BIkhNC6gOpXfIeScXhY_OQV6q7ivnHsUoOiW1Ot-Ec8,2297
51
- sonolus/script/num.py,sha256=4o0SQ9CpGpn5qddkVSwnJy6s5JHWW646BVNBWp2LMb0,13923
52
- sonolus/script/options.py,sha256=nTOuoRC2p_qoMx4ngOVDY2WZDooTxwwGTGKyb994v2A,7516
48
+ sonolus/script/interval.py,sha256=H-xedXbiLia-JU-Tafxq2rSoQ7pBOAeNOnyovrQyp14,9462
49
+ sonolus/script/iterator.py,sha256=OHnIOKRchzVCMaN33Tubo6EzqV61ZYUxDWIJ2S5G6iQ,4590
50
+ sonolus/script/level.py,sha256=wR23xk-NOcW_JMRb3R12sqIXCLSZL-7cM3y7IpMF1J0,6333
51
+ sonolus/script/metadata.py,sha256=ttRK27eojHf3So50KQJ-8yj3udZoN1bli5iD-knaeLw,753
52
+ sonolus/script/num.py,sha256=5PmfugfKtQ8Mobt9Ul_agv4XyqZr_EtNNPYMQcL14xQ,14178
53
+ sonolus/script/options.py,sha256=AljmjEyWH_Aquv_Jj-sx3GA3l5ZoOSl9acDv19FMHNA,7576
53
54
  sonolus/script/particle.py,sha256=K06ArT9tstRNdbuGIviDmDDWcK3-ieA53LHg0Xvizow,8304
54
- sonolus/script/pointer.py,sha256=pOh5vCSl6xR7mDm5PMOhBc_wf4O-b938DE0LtZWBmPc,1119
55
- sonolus/script/print.py,sha256=mNYu9QWiacBBGZrnePZQMVwbbguoelUps9GiOK_aVRU,2096
56
- sonolus/script/project.py,sha256=DhmBuH0CkFKmF27o1V9XhIOsywXDi57i-Wpwyd-70LM,2040
55
+ sonolus/script/pointer.py,sha256=Rlu3fW4odvJzZRFNwk6pGA8JLrp4J-PlONBOg3mSA8A,1203
56
+ sonolus/script/printing.py,sha256=mNYu9QWiacBBGZrnePZQMVwbbguoelUps9GiOK_aVRU,2096
57
+ sonolus/script/project.py,sha256=jLndgGJHdkqFYe-lDl_IzTjQ4gOSuy80en8WoSWXnB8,3340
57
58
  sonolus/script/quad.py,sha256=e2kXKSp9K46Q9qstLsGLFPxaW7Z2kfVfignA8Ka2-Pw,8375
58
- sonolus/script/record.py,sha256=lIptvCrX0mTFMNZBOXyimO3OXMBPEBf6H0urh0eeMlE,11222
59
- sonolus/script/runtime.py,sha256=xeiLJFeqkCev1x6pBiM5afyvi3GWdpLJ5OYRg9M9nwo,18562
60
- sonolus/script/sprite.py,sha256=FOozsPtaQnInnm-QshtYznnC66_8jb1D2sHmo7nFEsY,15718
59
+ sonolus/script/record.py,sha256=jHt2RjDD7FZ_eWAukEOZePu9VJaH-rwRqHdoEJpxCNY,11339
60
+ sonolus/script/runtime.py,sha256=xmf4HLShrcAqQ8qK3N-hGyVzEolgp34j_JSJH9orwIY,19930
61
+ sonolus/script/sprite.py,sha256=CMcRAZ2hejXnaBmY2_n1_rj6hGOgPP5zEW-BpyaEVOY,16256
61
62
  sonolus/script/text.py,sha256=IsoINZJXefjReYDjJFwVaFsUCdgeQvPBDeywljM2dWo,13025
62
63
  sonolus/script/timing.py,sha256=ZR0ypV2PIoDCMHHGOMfCeezStCsBQdzomdqaz5VKex0,2981
63
64
  sonolus/script/transform.py,sha256=hH6KSRQC8vV-Z10CRCrGewMYqQwUMH3mQIEmniuC2Zw,10760
64
- sonolus/script/ui.py,sha256=kyuP88sLRJPT-Yx-7fx8Xu9Wdegyw_CJNslcP4WnDUs,7268
65
- sonolus/script/values.py,sha256=JuvJknskuY6FPprUp9R-6Gj2TDJLu4ppbVcYedG5dG0,1049
66
- sonolus/script/vec.py,sha256=looCsmYpt6jlasdBqddtkC0hA1exZ3lxPP3_BL8cPXw,6148
65
+ sonolus/script/ui.py,sha256=R5J1QSvul-cFCUCjuEHbnzp4-CA2I8u608_wfJRr80s,7277
66
+ sonolus/script/values.py,sha256=GWl_gmNzwEBwm5fqj2LErfwOz8iWTJEAoFyOUnkBRS0,1028
67
+ sonolus/script/vec.py,sha256=4ntfJ96zxKR-nVZluUgHd-Ud4vNfButfiv7EsroZxfE,7002
67
68
  sonolus/script/internal/__init__.py,sha256=T6rzLoiOUaiSQtaHMZ88SNO-ijSjSSv33TKtUwu-Ms8,136
68
- sonolus/script/internal/builtin_impls.py,sha256=w27aKMhLX4Ivd7uKz1ZgVy1lC5scSSJ23-VfsbCfIb0,7731
69
+ sonolus/script/internal/builtin_impls.py,sha256=w9QqxJQ2YR5pVy820qWmAy0utbsW4hcSzMvA_yNgsvg,8186
69
70
  sonolus/script/internal/callbacks.py,sha256=vWzJG8uiJoEtsNnbeZPqOHogCwoLpz2D1MnHY2wVV8s,2801
70
- sonolus/script/internal/constant.py,sha256=VblCGm61J7PCnErom8L9-WHisD6-C09_yeuiMxQog14,3782
71
- sonolus/script/internal/context.py,sha256=I9X89aTWgoY-_jgnJHEnzzVLAvILACtPfgdE4ipxjOc,13930
71
+ sonolus/script/internal/constant.py,sha256=4kJpLek7PcdB0aTL8ygV4GYDZSDuHoWHljaIZpTtRrY,3842
72
+ sonolus/script/internal/context.py,sha256=xW7yFWr13yf77Uk4C_F7v9Kp4ZP1o30uZuBkvK1KyLA,14157
72
73
  sonolus/script/internal/descriptor.py,sha256=XRFey-EjiAm_--KsNl-8N0Mi_iyQwlPh68gDp0pKf3E,392
73
74
  sonolus/script/internal/dict_impl.py,sha256=alu_wKGSk1kZajNf64qbe7t71shEzD4N5xNIATH8Swo,1885
74
75
  sonolus/script/internal/error.py,sha256=ZNnsvQVQAnFKzcvsm6-sste2lo-tP5pPI8sD7XlAZWc,490
75
76
  sonolus/script/internal/generic.py,sha256=YU1hUJoBcGc0OSrFStK5JI6CikOwSmd_IR20pCuT82k,7310
76
77
  sonolus/script/internal/impl.py,sha256=HKQVoHknw5t43Wmj_G1vFjGSmnFpOj1FUYnhbUM3rHc,2969
77
78
  sonolus/script/internal/introspection.py,sha256=SL2zaYjid0kkcj6ZbFLIwhgh7WKZBaAHhlbSJGr6PWs,974
78
- sonolus/script/internal/math_impls.py,sha256=7L450U7gW-jUkTWcQ1AMg9IX0yhu4G2WUsJ5xMZ8r3o,2306
79
+ sonolus/script/internal/math_impls.py,sha256=Xk7tLMnV2npzPJWtHlspONQHt09Gh2YLdHhAjx4jkdE,2320
79
80
  sonolus/script/internal/native.py,sha256=XKlNnWSJ-lxbwVGWhGj_CSSoWsVN18imqT5sAsDJT1w,1551
80
81
  sonolus/script/internal/random.py,sha256=6Ku5edRcDUh7rtqEEYCJz0BQavw69RALsVHS25z50pI,1695
81
82
  sonolus/script/internal/range.py,sha256=lrTanQFHU7RuQxSSPwDdoC30Y8FnHGxcP1Ahditu3zU,2297
82
- sonolus/script/internal/transient.py,sha256=s-8284jDw1xZorOvLw9mG-ADhZqSWmzUgfL3AO5QcKE,1526
83
+ sonolus/script/internal/transient.py,sha256=c_Jg4yJJ_xvxMGNx9XECHCdiDlMhjfClf5ntzrPr6uc,1643
83
84
  sonolus/script/internal/tuple_impl.py,sha256=vjXmScLVdeTkDn3t9fgIRqtW31iwngnaP2rmA6nlsLw,3431
84
- sonolus/script/internal/value.py,sha256=QcX-Ppv5IHQvJEupqAXCmXpaWao5_0XDvYvNk9J2PQU,4334
85
- sonolus_py-0.1.9.dist-info/METADATA,sha256=bqFPKVEV8CRv--1dBl6wh4WiOiX67OIet3NRKZO7WoE,216
86
- sonolus_py-0.1.9.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
87
- sonolus_py-0.1.9.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
88
- sonolus_py-0.1.9.dist-info/licenses/LICENSE,sha256=JEKpqVhQYfEc7zg3Mj462sKbKYmO1K7WmvX1qvg9IJk,1067
89
- sonolus_py-0.1.9.dist-info/RECORD,,
85
+ sonolus/script/internal/value.py,sha256=hEq0YhXMj4uaGQA-r_W8PDOp_MY97nW30JKlpj-aZLM,4496
86
+ sonolus_py-0.2.0.dist-info/METADATA,sha256=LOjlu1hCu6r3VgzL7DbplSaBsjabZ2GWzsDsilNdSFc,238
87
+ sonolus_py-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
+ sonolus_py-0.2.0.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
89
+ sonolus_py-0.2.0.dist-info/licenses/LICENSE,sha256=JEKpqVhQYfEc7zg3Mj462sKbKYmO1K7WmvX1qvg9IJk,1067
90
+ sonolus_py-0.2.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.26.3
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
File without changes