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

sonolus/script/vec.py CHANGED
@@ -1,12 +1,16 @@
1
1
  from __future__ import annotations
2
2
 
3
- from math import atan2, cos, sin
4
-
5
3
  from sonolus.script.array import Array
6
4
  from sonolus.script.array_like import ArrayLike
5
+ from sonolus.script.internal.impl import perf_meta_fn
6
+ from sonolus.script.internal.math_impls import _atan2, _cos, _sin
7
7
  from sonolus.script.num import Num
8
8
  from sonolus.script.record import Record
9
9
 
10
+ atan2 = _atan2
11
+ sin = _sin
12
+ cos = _cos
13
+
10
14
 
11
15
  class Vec2(Record):
12
16
  """A 2D vector.
@@ -87,6 +91,7 @@ class Vec2(Record):
87
91
  return Vec2(x=cos(angle), y=sin(angle))
88
92
 
89
93
  @property
94
+ @perf_meta_fn
90
95
  def magnitude(self) -> float:
91
96
  """Calculate the magnitude (length) of the vector.
92
97
 
@@ -96,6 +101,7 @@ class Vec2(Record):
96
101
  return (self.x**2 + self.y**2) ** 0.5
97
102
 
98
103
  @property
104
+ @perf_meta_fn
99
105
  def angle(self) -> float:
100
106
  """Calculate the angle of the vector in radians from the positive x-axis.
101
107
 
@@ -104,6 +110,7 @@ class Vec2(Record):
104
110
  """
105
111
  return atan2(self.y, self.x)
106
112
 
113
+ @perf_meta_fn
107
114
  def dot(self, other: Vec2) -> float:
108
115
  """Calculate the dot product of this vector with another vector.
109
116
 
@@ -115,6 +122,7 @@ class Vec2(Record):
115
122
  """
116
123
  return self.x * other.x + self.y * other.y
117
124
 
125
+ @perf_meta_fn
118
126
  def rotate(self, angle: float) -> Vec2:
119
127
  """Rotate the vector by a given angle in radians and return a new vector.
120
128
 
@@ -124,11 +132,12 @@ class Vec2(Record):
124
132
  Returns:
125
133
  A new vector rotated by the given angle.
126
134
  """
127
- return Vec2(
135
+ return Vec2._quick_construct(
128
136
  x=self.x * cos(angle) - self.y * sin(angle),
129
137
  y=self.x * sin(angle) + self.y * cos(angle),
130
138
  )
131
139
 
140
+ @perf_meta_fn
132
141
  def rotate_about(self, angle: float, pivot: Vec2) -> Vec2:
133
142
  """Rotate the vector about a pivot by a given angle in radians and return a new vector.
134
143
 
@@ -141,15 +150,17 @@ class Vec2(Record):
141
150
  """
142
151
  return (self - pivot).rotate(angle) + pivot
143
152
 
153
+ @perf_meta_fn
144
154
  def normalize(self) -> Vec2:
145
155
  """Normalize the vector (set the magnitude to 1) and return a new vector.
146
156
 
147
157
  Returns:
148
158
  A new vector with magnitude 1.
149
159
  """
150
- magnitude = self.magnitude
151
- return Vec2(x=self.x / magnitude, y=self.y / magnitude)
160
+ magnitude = (self.x**2 + self.y**2) ** 0.5
161
+ return Vec2._quick_construct(x=self.x / magnitude, y=self.y / magnitude)
152
162
 
163
+ @perf_meta_fn
153
164
  def orthogonal(self) -> Vec2:
154
165
  """Return a vector orthogonal to this vector.
155
166
 
@@ -158,7 +169,7 @@ class Vec2(Record):
158
169
  Returns:
159
170
  A new vector orthogonal to this vector.
160
171
  """
161
- return Vec2(x=-self.y, y=self.x)
172
+ return Vec2._quick_construct(x=-self.y, y=self.x)
162
173
 
163
174
  @property
164
175
  def tuple(self) -> tuple[float, float]:
@@ -169,6 +180,7 @@ class Vec2(Record):
169
180
  """
170
181
  return self.x, self.y
171
182
 
183
+ @perf_meta_fn
172
184
  def __add__(self, other: Vec2) -> Vec2:
173
185
  """Add this vector to another vector and return a new vector.
174
186
 
@@ -178,8 +190,9 @@ class Vec2(Record):
178
190
  Returns:
179
191
  A new vector resulting from the addition.
180
192
  """
181
- return Vec2(x=self.x + other.x, y=self.y + other.y)
193
+ return Vec2._quick_construct(x=self.x + other.x, y=self.y + other.y)
182
194
 
195
+ @perf_meta_fn
183
196
  def __sub__(self, other: Vec2) -> Vec2:
184
197
  """Subtract another vector from this vector and return a new vector.
185
198
 
@@ -189,8 +202,9 @@ class Vec2(Record):
189
202
  Returns:
190
203
  A new vector resulting from the subtraction.
191
204
  """
192
- return Vec2(x=self.x - other.x, y=self.y - other.y)
205
+ return Vec2._quick_construct(x=self.x - other.x, y=self.y - other.y)
193
206
 
207
+ @perf_meta_fn
194
208
  def __mul__(self, other: Vec2 | float) -> Vec2:
195
209
  """Multiply this vector by another vector or a scalar and return a new vector.
196
210
 
@@ -202,19 +216,21 @@ class Vec2(Record):
202
216
  """
203
217
  match other:
204
218
  case Vec2(x, y):
205
- return Vec2(x=self.x * x, y=self.y * y)
219
+ return Vec2._quick_construct(x=self.x * x, y=self.y * y)
206
220
  case Num(factor):
207
- return Vec2(x=self.x * factor, y=self.y * factor)
221
+ return Vec2._quick_construct(x=self.x * factor, y=self.y * factor)
208
222
  case _:
209
223
  return NotImplemented
210
224
 
225
+ @perf_meta_fn
211
226
  def __rmul__(self, other):
212
227
  match other:
213
228
  case Num(factor):
214
- return Vec2(x=self.x * factor, y=self.y * factor)
229
+ return Vec2._quick_construct(x=self.x * factor, y=self.y * factor)
215
230
  case _:
216
231
  return NotImplemented
217
232
 
233
+ @perf_meta_fn
218
234
  def __truediv__(self, other: Vec2 | float) -> Vec2:
219
235
  """Divide this vector by another vector or a scalar and return a new vector.
220
236
 
@@ -226,19 +242,20 @@ class Vec2(Record):
226
242
  """
227
243
  match other:
228
244
  case Vec2(x, y):
229
- return Vec2(x=self.x / x, y=self.y / y)
245
+ return Vec2._quick_construct(x=self.x / x, y=self.y / y)
230
246
  case Num(factor):
231
- return Vec2(x=self.x / factor, y=self.y / factor)
247
+ return Vec2._quick_construct(x=self.x / factor, y=self.y / factor)
232
248
  case _:
233
249
  return NotImplemented
234
250
 
251
+ @perf_meta_fn
235
252
  def __neg__(self) -> Vec2:
236
253
  """Negate the vector (invert the direction) and return a new vector.
237
254
 
238
255
  Returns:
239
256
  A new vector with inverted direction.
240
257
  """
241
- return Vec2(x=-self.x, y=-self.y)
258
+ return Vec2._quick_construct(x=-self.x, y=-self.y)
242
259
 
243
260
 
244
261
  def pnpoly(vertices: ArrayLike[Vec2] | tuple[Vec2, ...], test: Vec2) -> bool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sonolus.py
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Summary: Sonolus engine development in Python
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.12
@@ -5,7 +5,7 @@ sonolus/backend/blocks.py,sha256=3peyb9eYBy0s53xNVJ1KmK4IgoyVkkwG-lqDQ_VZTHc,185
5
5
  sonolus/backend/excepthook.py,sha256=ezsTi8hPXSUhqZ7-H0rmkWcndBQcZFAShF543zzaEPM,1912
6
6
  sonolus/backend/finalize.py,sha256=ivl32G7rDSVZl2EEI1HvOHpLdhhOh-ZjavwBZgPe9uA,5286
7
7
  sonolus/backend/interpret.py,sha256=B0jqlLmEGoyO2mxpcvwRwV17Tq_gOE9wLNt26Q5QOfs,14306
8
- sonolus/backend/ir.py,sha256=TCDLMvlX2S8emFDQwFVeD2OUC4fnhbrMObgYtoa_7PQ,2845
8
+ sonolus/backend/ir.py,sha256=eyNXorOQY4zgKOvN4kO1MdJF3sU8H0Qw5RTPqbEjJHY,3854
9
9
  sonolus/backend/mode.py,sha256=NkcPZJm8dn83LX35uP24MtQOCnfRDFZ280dHeEEfauE,613
10
10
  sonolus/backend/node.py,sha256=eEzPP14jzWJp2xrZCAaPlNtokxdoqg0bSM7xQiwx1j8,1254
11
11
  sonolus/backend/ops.py,sha256=5weB_vIxbkwCSJuzYZyKUk7vVXsSIEDJYRlvE-2ke8A,10572
@@ -15,58 +15,59 @@ sonolus/backend/visitor.py,sha256=SIkrr7JOOQ4is9ov2siBpczpb_vWZZyckBQQr2BojrQ,63
15
15
  sonolus/backend/optimize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  sonolus/backend/optimize/allocate.py,sha256=CuumoMphkpQlGRNeKLHT4FBGE0XVj5pwhfNdrqiLFSs,7535
17
17
  sonolus/backend/optimize/constant_evaluation.py,sha256=U--9moGsXFzrgweWWwHIiEuuMzwetd1IOjjtrCscoNM,21450
18
- sonolus/backend/optimize/copy_coalesce.py,sha256=45YL7QmRLL-FiQX4sDs56o4hyP7lX8KIJ0lIbyVw8h8,4549
18
+ sonolus/backend/optimize/copy_coalesce.py,sha256=AS-TmOoVG2oHxU8fejMxkOdRqfcaWdN53H4POL3G-O4,4797
19
19
  sonolus/backend/optimize/dead_code.py,sha256=ZRJ95zJ49R-wZTzJtcSSbl5LYKHWI-byHM3n6jOyAqc,8307
20
20
  sonolus/backend/optimize/dominance.py,sha256=3jAgXqXTbuYLpXvIm8UB06NkIOLtaoVp7pBVPcLb5vY,3259
21
- sonolus/backend/optimize/flow.py,sha256=asBUSWDPlAmlBiPg8a0Q4DJ2Uzg1v7pUnIKNcK-Q7Bo,6680
22
- sonolus/backend/optimize/inlining.py,sha256=RL88GqWt7yfxHpJifNjeVjzVNjQJk8226l9ICehkGwM,10423
23
- sonolus/backend/optimize/liveness.py,sha256=LKTLdQm4iPsAdAdvC3DRrrw_zwTFdFTFsMmwDylUAn0,7163
21
+ sonolus/backend/optimize/flow.py,sha256=xUoBpWIYi-NjqXahA6obAZaPvLj_HaDNNv7cO13e2ps,7192
22
+ sonolus/backend/optimize/inlining.py,sha256=BEXjPbJMGTJbgA4ydC38TbEuYEFqb6oxDS0roZTmuds,10417
23
+ sonolus/backend/optimize/liveness.py,sha256=KYQlXdKuwnRvY9JeAjwm1bzPbFwshcUxtYs7ycMRS-M,7279
24
24
  sonolus/backend/optimize/optimize.py,sha256=sY1GFLjAslVgMsLzocC3Ctk0R9SqwybWyqzFB6WMntI,1624
25
25
  sonolus/backend/optimize/passes.py,sha256=YyFKy6qCwcR_Ua2_SXpcBODfvBbm_ygVYcqloOlfDZI,1911
26
26
  sonolus/backend/optimize/simplify.py,sha256=RDNVTKfC7ByRyxY5z30_ShimOAKth_pKlVFV_36pDG4,14082
27
27
  sonolus/backend/optimize/ssa.py,sha256=raQO0furQQRPYb8iIBKfNrJlj-_5wqtI4EWNfLZ8QFo,10834
28
28
  sonolus/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- sonolus/build/cli.py,sha256=-_lTN8zT7nQB2lySM8itAEPVutcEQI-TJ13BcPIfGb4,10113
29
+ sonolus/build/cli.py,sha256=aEuuyWxo5u12z-0On2conYxQ31XHTIZ3npD4y0QNpFQ,9441
30
30
  sonolus/build/collection.py,sha256=KgMfdLsCA7bheT-E2wmdB2OBEWolbsECm8vrwAhGC1c,12415
31
- sonolus/build/compile.py,sha256=mrbKTlhgu1x0YWijd1pIGHcOg0UTHPx4rEECPZuCRSM,6968
32
- sonolus/build/engine.py,sha256=YQ2Sc2zC56N2Y5S5zE3QCoUzwKcVHSPl14iQE0tkm6Q,13463
31
+ sonolus/build/compile.py,sha256=3r3pbrOMS45ufQdtd12mhCq11b3km7BU4Npa2AMxTzo,8272
32
+ sonolus/build/dev_server.py,sha256=oTvYsUaZDE8XyobS7jqOarwWiNkOjbWTm9bjp1r2M_s,6597
33
+ sonolus/build/engine.py,sha256=J5I1-oYpiwCl9lOKhLpEgw3iPRhzD6aLH9oBPjgHx_s,14139
33
34
  sonolus/build/level.py,sha256=KLqUAtxIuIqrzeFURJA97rdqjA5pcvYSmwNZQhElaMQ,702
34
35
  sonolus/build/node.py,sha256=gnX71RYDUOK_gYMpinQi-bLWO4csqcfiG5gFmhxzSec,1330
35
- sonolus/build/project.py,sha256=__sOJas3RTwn4aizq16rYCvZgG8aX-JbQaxmfVhRnc4,8154
36
+ sonolus/build/project.py,sha256=8_Xnz6GyHFw9bfdRz4ATrgvSeMBEe554AYc8Lac-0sM,8340
36
37
  sonolus/script/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
38
  sonolus/script/archetype.py,sha256=xhdm1jO_p32V1NtGjgV0SGPm7X9GnJ6Z7hXi2zT69Ww,49647
38
- sonolus/script/array.py,sha256=9uOUHZIDMyMT9q3APcXJWXWt97yG-AZoRlxwrvSY6SU,12367
39
+ sonolus/script/array.py,sha256=dzuAd72DcVGG8Ix5H69eIZpGiFSoH_rErKFNgQ5DEKI,12399
39
40
  sonolus/script/array_like.py,sha256=hUDdDaP306kflVv9YomdHIMXogrVjxsBXCrLvB9QpuE,9681
40
- sonolus/script/bucket.py,sha256=SNqnfLGpnO_u-3LFFazdgzNk332OdDUIlmZHsuoVZuE,7674
41
+ sonolus/script/bucket.py,sha256=XLZ208UQIwDEdW9LDaAxIemhoNsNyKJo9aQVfAb5D7M,7796
41
42
  sonolus/script/containers.py,sha256=L3rzPfN1cDb2m02k9qRyjnGxJx07X3q3MccCaL5tNJ8,18773
42
- sonolus/script/debug.py,sha256=KNc2zhzLzQr_YZV9BkZCX4GP00Sev2O23jb6PDpHC4w,5472
43
+ sonolus/script/debug.py,sha256=cwtKcO6unPlwkKIYF72RD_jlZpCNZiXLBHyrb4rl95s,5903
43
44
  sonolus/script/easing.py,sha256=2FUJI_nfp990P_armCcRqHm2329O985glJAhSC6tnxs,11379
44
45
  sonolus/script/effect.py,sha256=pYihzdVOS3ekiiTwPVg6czUW1UNv0CJNIk-xBsYRdq8,7792
45
46
  sonolus/script/engine.py,sha256=etI9dJsQ7V9YZICVNZg54WqpLijPxG8eTPHiV-_EiG8,10687
46
47
  sonolus/script/globals.py,sha256=nlXSNS4NRXsgQU2AJImVIs752h1WqsMnShSKgU011c4,10270
47
48
  sonolus/script/instruction.py,sha256=Dd-14D5Amo8nhPBr6DNyg2lpYw_rqZkT8Kix3HkfE7k,6793
48
- sonolus/script/interval.py,sha256=dj6F2wn5uP6I6_mcZn-wIREgRUQbsLzhvhzB0oEyAdU,11290
49
+ sonolus/script/interval.py,sha256=2gjnEr11RExyXGhZuUjRRgx-ZrNynWLPj-b89lQCnLQ,11688
49
50
  sonolus/script/iterator.py,sha256=_ICY_yX7FG0Zbgs3NhVnaIBdVDpAeXjxJ_CQtq30l7Y,3774
50
51
  sonolus/script/level.py,sha256=X3-V99ihruYYCcPdch66dHi_ydCWXXn7epviLLjxW8w,8288
51
52
  sonolus/script/maybe.py,sha256=VYvTWgEfPzoXqI3i3zXhc4dz0pWBVoHmW8FtWH0GQvM,8194
52
53
  sonolus/script/metadata.py,sha256=ttRK27eojHf3So50KQJ-8yj3udZoN1bli5iD-knaeLw,753
53
- sonolus/script/num.py,sha256=s3Sl4nxZAjkOg-UwzJiWkUsV0lyJQPTOyjhAfzWFTf8,16137
54
+ sonolus/script/num.py,sha256=9pahERQcIh16ytoDjJB3u3L6fH1Xh11Y99l8SYxkjMA,15927
54
55
  sonolus/script/options.py,sha256=XVN-mL7Rwhd2Tu9YysYq9YDGpH_LazdmhqzSYE6nR3Q,9455
55
56
  sonolus/script/particle.py,sha256=rCEJGT7frqJqZLi4EBCqDs4QBvLW6Ys640nD1FxiVec,10326
56
57
  sonolus/script/pointer.py,sha256=FoOfyD93r0G5d_2BaKfeOT9SqkOP3hq6sqtOs_Rb0c8,1511
57
58
  sonolus/script/printing.py,sha256=mNYu9QWiacBBGZrnePZQMVwbbguoelUps9GiOK_aVRU,2096
58
- sonolus/script/project.py,sha256=gG6mYsGlIqznY_RODyFMiXVBh0tVbXLAWZ5LHCiBIuU,4439
59
- sonolus/script/quad.py,sha256=9qUCOVirSShSE_hP9G0ZIkewNX990sw476PNwwJlWdU,14377
60
- sonolus/script/record.py,sha256=igmawc0hqb98YVcZnPTThHvnIP88Qelhoge4cNJx45Q,12770
61
- sonolus/script/runtime.py,sha256=VwmW-8fy-uKyfUNewtXQhphmLZP7ugQeMWBFA8zi28w,33360
62
- sonolus/script/sprite.py,sha256=J4rA558MSNjNkI3KPnDp3R5RyJRmpi5P5cDfg6dKlIU,18065
59
+ sonolus/script/project.py,sha256=uw6_WuN1aRq_Sf43LPV_XpJWnx76nuO54D3UtdF2e0A,4793
60
+ sonolus/script/quad.py,sha256=8lZ_5-eWeqePldNGBkNZTuOgS_IRb41URgGwSW4h2T0,14445
61
+ sonolus/script/record.py,sha256=BrQ8k-O4WX9FT_EfoRmNnKC1BZM9gWydZ4R4swh3chc,13051
62
+ sonolus/script/runtime.py,sha256=Buy-bePUKBDj7LCKf5ek8xyiSy3ENOoz7FTGGMahnSk,33405
63
+ sonolus/script/sprite.py,sha256=q2i9AwFHO6X_li2hgwpP79fSG-ZriX0gMGhr3yTI8p8,18245
63
64
  sonolus/script/stream.py,sha256=qVljaCxJJtQs7aBwfUG15pYvztb4jFYzSLGDh5t4DTA,24713
64
65
  sonolus/script/text.py,sha256=wxujIgKYcCfl2AD2_Im8g3vh0lDEHYwTSRZg9wsBPEU,13402
65
66
  sonolus/script/timing.py,sha256=DklMvuxcFg3MzXsecUo6Yhdk7pScOJ7STwXvAiTvLKM,3067
66
67
  sonolus/script/transform.py,sha256=w5mr7hTuNYU0eTAdnN_wTVibaQa0mZrkl-W-kgewJxQ,21345
67
68
  sonolus/script/ui.py,sha256=DYPGWIjHj1IFPxW1zaEuIUQx0b32FJPXtiwCvrtJ6oo,7528
68
69
  sonolus/script/values.py,sha256=6iJG6h4IDlbcK8FH4GENSHOQc7C_7fCGa34wM80qToA,1629
69
- sonolus/script/vec.py,sha256=oVx5C5zGj8gX37F7y1FEJOrTYzb7EWfQWQuKU8KGLdc,7486
70
+ sonolus/script/vec.py,sha256=-BV4UpqhYUjWZp1AfwuDqEoc1hLzvoch_C2L9Npk-Rs,8047
70
71
  sonolus/script/internal/__init__.py,sha256=T6rzLoiOUaiSQtaHMZ88SNO-ijSjSSv33TKtUwu-Ms8,136
71
72
  sonolus/script/internal/builtin_impls.py,sha256=R1h3IOlWzolPfc9yoma2cBN0F5cBhj_JNP-TTdKoBlc,13186
72
73
  sonolus/script/internal/callbacks.py,sha256=vWzJG8uiJoEtsNnbeZPqOHogCwoLpz2D1MnHY2wVV8s,2801
@@ -76,7 +77,7 @@ sonolus/script/internal/descriptor.py,sha256=XRFey-EjiAm_--KsNl-8N0Mi_iyQwlPh68g
76
77
  sonolus/script/internal/dict_impl.py,sha256=alu_wKGSk1kZajNf64qbe7t71shEzD4N5xNIATH8Swo,1885
77
78
  sonolus/script/internal/error.py,sha256=ZNnsvQVQAnFKzcvsm6-sste2lo-tP5pPI8sD7XlAZWc,490
78
79
  sonolus/script/internal/generic.py,sha256=_3d5Rn_tn214-77fPE67vdbdqt1PQF8-2WB_XDu5YRg,7551
79
- sonolus/script/internal/impl.py,sha256=JzRk2iylXHNk7q7f_H84spsix2gcnoTqo-hLbIegjoI,3261
80
+ sonolus/script/internal/impl.py,sha256=U9D8A207yBbA-R9Qa9xE9zK4f0uDvGbHuFhwaIO81Ew,3364
80
81
  sonolus/script/internal/introspection.py,sha256=guL9_NR2D3OJAnNpeFdyYkO_vVXk-3KQr2-y4YielM0,1133
81
82
  sonolus/script/internal/math_impls.py,sha256=nHSLgA7Tcx7jY1p07mYBCeSRmVx713bwdNayCIcaXSE,2652
82
83
  sonolus/script/internal/native.py,sha256=DQxmzxgLG_UsLpXhIEtBdO7eIeDFprU78UBDC4OZzw0,1597
@@ -86,8 +87,8 @@ sonolus/script/internal/simulation_context.py,sha256=LGxLTvxbqBIhoe1R-SfwGajNIDw
86
87
  sonolus/script/internal/transient.py,sha256=y2AWABqF1aoaP6H4_2u4MMpNioC4OsZQCtPyNI0txqo,1634
87
88
  sonolus/script/internal/tuple_impl.py,sha256=DPNdmmRmupU8Ah4_XKq6-PdT336l4nt15_uCJKQGkkk,3587
88
89
  sonolus/script/internal/value.py,sha256=OngrCdmY_h6mV2Zgwqhuo4eYFad0kTk6263UAxctZcY,6963
89
- sonolus_py-0.8.0.dist-info/METADATA,sha256=Q-mtT3V7JhxLurDNDQyLmz5Hre95CGj-T-NHbh0hTMk,302
90
- sonolus_py-0.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
91
- sonolus_py-0.8.0.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
92
- sonolus_py-0.8.0.dist-info/licenses/LICENSE,sha256=JEKpqVhQYfEc7zg3Mj462sKbKYmO1K7WmvX1qvg9IJk,1067
93
- sonolus_py-0.8.0.dist-info/RECORD,,
90
+ sonolus_py-0.9.0.dist-info/METADATA,sha256=v6BgP_BvL8W0WPDxxZXAihpYcwWtyYfnA_q9oPWAz08,302
91
+ sonolus_py-0.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
92
+ sonolus_py-0.9.0.dist-info/entry_points.txt,sha256=oTYspY_b7SA8TptEMTDxh4-Aj-ZVPnYC9f1lqH6s9G4,54
93
+ sonolus_py-0.9.0.dist-info/licenses/LICENSE,sha256=JEKpqVhQYfEc7zg3Mj462sKbKYmO1K7WmvX1qvg9IJk,1067
94
+ sonolus_py-0.9.0.dist-info/RECORD,,