hmr 0.6.0.1__py3-none-any.whl → 0.6.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hmr
3
- Version: 0.6.0.1
3
+ Version: 0.6.1
4
4
  Summary: Hot Module Reload for Python
5
5
  Project-URL: repository, https://github.com/promplate/pyth-on-line/tree/reactivity
6
6
  Requires-Python: >=3.12
@@ -0,0 +1,15 @@
1
+ hmr-0.6.1.dist-info/METADATA,sha256=oh3IFCLZsLRhC77Za4DyZ_nTiDVJjdiKnwjiC-v57Zc,1999
2
+ hmr-0.6.1.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ hmr-0.6.1.dist-info/entry_points.txt,sha256=g_T0uJ43WgsdG14kkkdaBQuIL0HO-m1qvtjXMP6d060,59
4
+ reactivity/__init__.py,sha256=pX-RUzkezCC1x4eOWGxNhXbwrbvBLP_3pQuZr9eZz1Y,300
5
+ reactivity/context.py,sha256=hgf3U4ihtGSVZ8mGvXcjKcO1U5i7lwX-LadDraAjdNg,1402
6
+ reactivity/functional.py,sha256=jJLEq88w5ag2cXuD1T118uEjnEg37_mqvWmFkb47KVY,1300
7
+ reactivity/helpers.py,sha256=lLZMc43om6SYufUytYMtIWGA7cOJH3ko2xLyfNm84SM,5978
8
+ reactivity/hmr/__init__.py,sha256=S5ZIHqCRpevdzWuhS0aCua_S8F0LkK0YNg6IgeTScFQ,177
9
+ reactivity/hmr/__main__.py,sha256=uIcyjR5gMFIXH_3hS0B3SD00RirVf7GIct-uItx675o,64
10
+ reactivity/hmr/api.py,sha256=ypS_LyzMH1JbN5cSwamAJ0HEcHMOY7BOIINuJmWJwo8,2283
11
+ reactivity/hmr/core.py,sha256=X2WZzpnTTrxobkT1NjYPU2UZFWMcUx8JmC4n27cVXF4,11835
12
+ reactivity/hmr/hooks.py,sha256=jIFpe4CNxfaS9RcR4OIodx_sOZlnJ_IA1T1RtHPXhwU,945
13
+ reactivity/hmr/utils.py,sha256=h9m7iRXlvsLTrHoXV9gEVbhz3XsPK4KgnStYoCAWE5I,1616
14
+ reactivity/primitives.py,sha256=_I6mG1qPBH6Vsktlf3-0mXpRO6L1hFhbfRtNMrpVxS8,6906
15
+ hmr-0.6.1.dist-info/RECORD,,
reactivity/context.py CHANGED
@@ -38,6 +38,15 @@ class Context(NamedTuple):
38
38
  def effect(self):
39
39
  return partial(Effect, context=self)
40
40
 
41
+ @contextmanager
42
+ def untrack(self):
43
+ computations = self.current_computations[:]
44
+ self.current_computations.clear()
45
+ try:
46
+ yield
47
+ finally:
48
+ self.current_computations[:] = computations
49
+
41
50
 
42
51
  def new_context():
43
52
  return Context([], [])
reactivity/helpers.py CHANGED
@@ -99,7 +99,9 @@ class Reactive[K, V](Subscribable, MutableMapping[K, V]):
99
99
 
100
100
  def __setitem__(self, key: K, value: V):
101
101
  with Batch(force_flush=False, context=self.context):
102
- if self._signals[key].set(value):
102
+ old_value = self._signals[key].get(track=False)
103
+ self._signals[key].set(value)
104
+ if old_value is self.UNSET:
103
105
  self.notify()
104
106
 
105
107
  def __delitem__(self, key: K):
reactivity/hmr/core.py CHANGED
@@ -344,4 +344,4 @@ def cli():
344
344
  reloader.keep_watching_until_interrupt()
345
345
 
346
346
 
347
- __version__ = "0.6.0.1"
347
+ __version__ = "0.6.1"
reactivity/primitives.py CHANGED
@@ -34,8 +34,9 @@ class Subscribable:
34
34
  return
35
35
  last = self.context.current_computations[-1]
36
36
  if last is not self:
37
- self.subscribers.add(last)
38
- last.dependencies.add(self)
37
+ with self.context.untrack():
38
+ self.subscribers.add(last)
39
+ last.dependencies.add(self)
39
40
 
40
41
  def notify(self):
41
42
  if self.context.batches:
@@ -1,15 +0,0 @@
1
- hmr-0.6.0.1.dist-info/METADATA,sha256=80LsOLy_tmxX-O6-QfjEz72F0hiT1qtG99CJj0MDeVk,2001
2
- hmr-0.6.0.1.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- hmr-0.6.0.1.dist-info/entry_points.txt,sha256=g_T0uJ43WgsdG14kkkdaBQuIL0HO-m1qvtjXMP6d060,59
4
- reactivity/__init__.py,sha256=pX-RUzkezCC1x4eOWGxNhXbwrbvBLP_3pQuZr9eZz1Y,300
5
- reactivity/context.py,sha256=mhQE1dXNCk_BbLLv6LQcOWsHh9rl9LyqTdMf7UF6GtY,1160
6
- reactivity/functional.py,sha256=jJLEq88w5ag2cXuD1T118uEjnEg37_mqvWmFkb47KVY,1300
7
- reactivity/helpers.py,sha256=ZhpsIYoUyUSWaAsvCP7BlYxGhxySxHaU1WdRtHOn95k,5882
8
- reactivity/hmr/__init__.py,sha256=S5ZIHqCRpevdzWuhS0aCua_S8F0LkK0YNg6IgeTScFQ,177
9
- reactivity/hmr/__main__.py,sha256=uIcyjR5gMFIXH_3hS0B3SD00RirVf7GIct-uItx675o,64
10
- reactivity/hmr/api.py,sha256=ypS_LyzMH1JbN5cSwamAJ0HEcHMOY7BOIINuJmWJwo8,2283
11
- reactivity/hmr/core.py,sha256=MDgcWQSNuogZA_AEBTq7TC1DsyBCni71Gk_0kVuBSwc,11837
12
- reactivity/hmr/hooks.py,sha256=jIFpe4CNxfaS9RcR4OIodx_sOZlnJ_IA1T1RtHPXhwU,945
13
- reactivity/hmr/utils.py,sha256=h9m7iRXlvsLTrHoXV9gEVbhz3XsPK4KgnStYoCAWE5I,1616
14
- reactivity/primitives.py,sha256=z69PqQxizN2sbursmpKW5SlWshlZZzdLgFH9u8E5eZc,6857
15
- hmr-0.6.0.1.dist-info/RECORD,,
File without changes