pulse-framework 0.1.72__py3-none-any.whl → 0.1.74__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.
- pulse/__init__.py +16 -4
- pulse/cli/processes.py +2 -0
- pulse/debounce.py +79 -0
- pulse/decorators.py +4 -3
- pulse/hooks/effects.py +5 -5
- pulse/hooks/runtime.py +25 -8
- pulse/hooks/setup.py +6 -10
- pulse/hooks/stable.py +5 -9
- pulse/hooks/state.py +4 -8
- pulse/queries/common.py +1 -1
- pulse/queries/infinite_query.py +2 -1
- pulse/queries/mutation.py +2 -1
- pulse/queries/query.py +2 -1
- pulse/render_session.py +2 -2
- pulse/renderer.py +30 -2
- pulse/routing.py +19 -5
- pulse/serializer.py +38 -19
- pulse/state/__init__.py +1 -0
- pulse/state/property.py +218 -0
- pulse/state/query_param.py +538 -0
- pulse/{state.py → state/state.py} +66 -220
- pulse/transpiler/__init__.py +5 -0
- pulse/transpiler/function.py +56 -32
- pulse/transpiler/nodes.py +43 -4
- pulse/transpiler/parse.py +70 -0
- pulse/transpiler/transpiler.py +413 -81
- pulse/transpiler/vdom.py +1 -1
- {pulse_framework-0.1.72.dist-info → pulse_framework-0.1.74.dist-info}/METADATA +2 -2
- {pulse_framework-0.1.72.dist-info → pulse_framework-0.1.74.dist-info}/RECORD +31 -26
- {pulse_framework-0.1.72.dist-info → pulse_framework-0.1.74.dist-info}/WHEEL +0 -0
- {pulse_framework-0.1.72.dist-info → pulse_framework-0.1.74.dist-info}/entry_points.txt +0 -0
pulse/transpiler/vdom.py
CHANGED
|
@@ -157,7 +157,7 @@ CallbackPlaceholder: TypeAlias = Literal["$cb"]
|
|
|
157
157
|
|
|
158
158
|
The callback invocation target is derived from the element path + prop name.
|
|
159
159
|
Because the prop name is known from `VDOMElement.eval`, the placeholder can be a
|
|
160
|
-
single sentinel string.
|
|
160
|
+
single sentinel string. Debounced callbacks use "$cb:<delay_ms>" in the wire format.
|
|
161
161
|
"""
|
|
162
162
|
|
|
163
163
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pulse-framework
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.74
|
|
4
4
|
Summary: Pulse - Full-stack framework for building real-time React applications in Python
|
|
5
5
|
Requires-Dist: fastapi>=0.128.0
|
|
6
6
|
Requires-Dist: uvicorn>=0.24.0
|
|
@@ -15,7 +15,7 @@ Requires-Dist: urllib3>=2.6.3
|
|
|
15
15
|
Requires-Dist: watchfiles>=1.1.0
|
|
16
16
|
Requires-Dist: httpx>=0.28.1
|
|
17
17
|
Requires-Dist: aiohttp>=3.12.0
|
|
18
|
-
Requires-Python: >=3.
|
|
18
|
+
Requires-Python: >=3.12
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
|
|
21
21
|
# Pulse Python
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pulse/__init__.py,sha256=
|
|
1
|
+
pulse/__init__.py,sha256=GUPD8THGENBgHsZvixIP8wOiEtdEMtIVpr8N8MpuRL4,32675
|
|
2
2
|
pulse/_examples.py,sha256=dFuhD2EVXsbvAeexoG57s4VuN4gWLaTMOEMNYvlPm9A,561
|
|
3
3
|
pulse/app.py,sha256=Bi94rYG-MoldkGa-_CscLMstjTEV8BHVAgDbvapRGzI,36167
|
|
4
4
|
pulse/channel.py,sha256=ePpvD2mDbddt_LMxxxDjNRgOLbVi8Ed6TmJFgkrALB0,15790
|
|
@@ -10,7 +10,7 @@ pulse/cli/helpers.py,sha256=XXRRXeGFgeq-jbp0QGFFVq_aGg_Kp7_AkYsTK8LfSdg,7810
|
|
|
10
10
|
pulse/cli/logging.py,sha256=3uuB1dqI-lHJkodNUURN6UMWdKF5UQ9spNG-hBG7bA4,2516
|
|
11
11
|
pulse/cli/models.py,sha256=NBV5byBDNoAQSk0vKwibLjoxuA85XBYIyOVJn64L8oU,858
|
|
12
12
|
pulse/cli/packages.py,sha256=DSnhxz61AoLVvBre3c0dnVYSpiKPI0rKFq4YmgM_VlA,7220
|
|
13
|
-
pulse/cli/processes.py,sha256=
|
|
13
|
+
pulse/cli/processes.py,sha256=rtMTpl0e3Wx1IL_Kx7b6Loflst1HXW4Wm7XGk6N2-xc,7634
|
|
14
14
|
pulse/cli/secrets.py,sha256=dNfQe6AzSYhZuWveesjCRHIbvaPd3-F9lEJ-kZA7ROw,921
|
|
15
15
|
pulse/cli/uvicorn_log_config.py,sha256=f7ikDc5foXh3TmFMrnfnW8yev48ZAdlo8F4F_aMVoVk,2391
|
|
16
16
|
pulse/code_analysis.py,sha256=NBba_7VtOxZYMyfku_p-bWkG0O_1pi1AxcaNyVM1nmY,1024
|
|
@@ -28,7 +28,8 @@ pulse/components/if_.py,sha256=5IOq3R70B-JdI-fvDNYDyAaSEtO8L5OaiqHp-jUn-Kw,2153
|
|
|
28
28
|
pulse/components/react_router.py,sha256=Nl6juntLSowFc38q7g_VMdcc4ju6lj8DUhpNR2NuOKQ,2934
|
|
29
29
|
pulse/context.py,sha256=odTQlOhVRIwNvtatrmPe_Fd8Zk0rMcbcqQHBxvWYH5o,2677
|
|
30
30
|
pulse/cookies.py,sha256=ozfdBKExdbpeM5ileIA1z8BZA5hoUrZ5_iO9fIMrgRk,8768
|
|
31
|
-
pulse/
|
|
31
|
+
pulse/debounce.py,sha256=IUi5TAjPfavGXKJ2oQoJPwvBmeqnEf0Tsu29FFdFYJk,2262
|
|
32
|
+
pulse/decorators.py,sha256=Lskni9Keqfb-xmUliFQe5x-4AcNqrwdvoh0kuz2fXa0,9958
|
|
32
33
|
pulse/dom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
34
|
pulse/dom/elements.py,sha256=YHXkVpfMAC4-0o61fK-E0LGTOM3KMCtBfpHHAwLx7dw,23241
|
|
34
35
|
pulse/dom/events.py,sha256=yHioH8Y-b7raOaZ43JuCxk2lUBryUAcDSc-5VhXtiSI,14699
|
|
@@ -41,12 +42,12 @@ pulse/forms.py,sha256=0irpErCMJk8-YO1BrxjMkFb8dnvSz3rfzTywmMeib7g,14042
|
|
|
41
42
|
pulse/helpers.py,sha256=imVA9XzkYrYmdeqEdD7ot0g99adL1SVKv5bQGkKb-aQ,9504
|
|
42
43
|
pulse/hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
44
|
pulse/hooks/core.py,sha256=tDEcB_CTD4yI5bNKn7CtB40sRKIanGNqPD5_qLgSzf4,10982
|
|
44
|
-
pulse/hooks/effects.py,sha256=
|
|
45
|
+
pulse/hooks/effects.py,sha256=KjAS8CgDVWhM6vbEpzL87TKK9q7K_MVZFt7k_f0HF9M,2961
|
|
45
46
|
pulse/hooks/init.py,sha256=PhjVBLlHpodPzVrRcx_QfEUrsx_6gEX_NuVhe6ojiYI,17834
|
|
46
|
-
pulse/hooks/runtime.py,sha256=
|
|
47
|
-
pulse/hooks/setup.py,sha256=
|
|
48
|
-
pulse/hooks/stable.py,sha256=
|
|
49
|
-
pulse/hooks/state.py,sha256=
|
|
47
|
+
pulse/hooks/runtime.py,sha256=ogrm4Prvr9ZNaBb5bLfZBHrzbJuYe1zKpIPkbdnIzsw,12286
|
|
48
|
+
pulse/hooks/setup.py,sha256=NcQPKnMV5dO0vUsWi4u9c9LB0wqFstrtiPGdvihtGiQ,6872
|
|
49
|
+
pulse/hooks/stable.py,sha256=hLCOl_oAbgdNwiaWwwUTk7ZsHvMqXFFozFztJZMyGbQ,3627
|
|
50
|
+
pulse/hooks/state.py,sha256=zRFlcOUdl-SBkJ-EzVXRLrLXzAc4-uRzgH4hD9rM1oU,5251
|
|
50
51
|
pulse/js/__init__.py,sha256=tj1A6-eR5WS83UNgHb3Dw23m37oJsEuyV0ezUB6kXbg,3636
|
|
51
52
|
pulse/js/__init__.pyi,sha256=WN22WsJB-XFk6auL9zklwG2Kof3zeOsc56A56dJ3MWg,3097
|
|
52
53
|
pulse/js/_types.py,sha256=F4Go2JtJ2dbxq1fXpc2ablG_nyvhvHzOlZLlEv0VmyU,7421
|
|
@@ -78,32 +79,35 @@ pulse/proxy.py,sha256=c13b0fE3sq82sFo46vv0emWLQ_ePwRkI7hiPZrnQDCE,22780
|
|
|
78
79
|
pulse/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
80
|
pulse/queries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
81
|
pulse/queries/client.py,sha256=KMGT92dESMrzpLlhd701fyh7Wrs3VKmM5cZoRQ0AEzg,18994
|
|
81
|
-
pulse/queries/common.py,sha256=
|
|
82
|
+
pulse/queries/common.py,sha256=Adz_qDEnHHKAb0L2tVwSc14J0PXghhYw6B3AO2_Ud-E,4284
|
|
82
83
|
pulse/queries/effect.py,sha256=1ePUi2TwP49L9LhlkKI2qV_HhIO4jKj1r5jyPaWiUn8,1508
|
|
83
|
-
pulse/queries/infinite_query.py,sha256=
|
|
84
|
-
pulse/queries/mutation.py,sha256=
|
|
84
|
+
pulse/queries/infinite_query.py,sha256=YrBI1TlgQ7edBs-LbY6R57fMPz8rj23uKHYHfsv0kp4,50527
|
|
85
|
+
pulse/queries/mutation.py,sha256=CrVFPrLJ7TNYOP5Sa-U9JwropxLfTFSxJiKZVNOE9lM,8312
|
|
85
86
|
pulse/queries/protocol.py,sha256=TOrUiI4QK55xuh0i4ch1u96apNl12QeYafkf6RVDd08,3544
|
|
86
|
-
pulse/queries/query.py,sha256=
|
|
87
|
+
pulse/queries/query.py,sha256=67hohYL1Gj2RdsNxTs-GfoN_hhpmQvpjPtPVYL2d5XI,41887
|
|
87
88
|
pulse/queries/store.py,sha256=iw05_EFpyfiXv5_FV_x4aHtCo00mk0dDPFD461cajcg,3850
|
|
88
89
|
pulse/react_component.py,sha256=8RLg4Bi7IcjqbnbEnp4hJpy8t1UsE7mG0UR1Q655LDk,2332
|
|
89
90
|
pulse/reactive.py,sha256=GSh9wSH3THCBjDTafwWttyx7djeKBWV_KqjaKRYUNsA,31393
|
|
90
91
|
pulse/reactive_extensions.py,sha256=yQ1PpdAh4kMvll7R15T72FOg8NFdG_HGBsGc63dawYk,33754
|
|
91
|
-
pulse/render_session.py,sha256=
|
|
92
|
-
pulse/renderer.py,sha256=
|
|
92
|
+
pulse/render_session.py,sha256=WKWDOqtIjy9n00HxMiViI-pBHw34QOEhLgZap28BCMg,23431
|
|
93
|
+
pulse/renderer.py,sha256=a4gTEFZuhAc1V5uTcFFcsOREDg6ZU9-jf4Ic7qLo2CY,16902
|
|
93
94
|
pulse/request.py,sha256=N0oFOLiGxpbgSgxznjvu64lG3YyOcZPKC8JFyKx6X7w,6023
|
|
94
95
|
pulse/requirements.py,sha256=nMnE25Uu-TUuQd88jW7m2xwus6fD-HvXxQ9UNb7OOGc,1254
|
|
95
|
-
pulse/routing.py,sha256=
|
|
96
|
+
pulse/routing.py,sha256=oRfVaeIrsbDR9yW9BYwxVWV3HZI7wk21yZX69IVADIU,17279
|
|
96
97
|
pulse/scheduling.py,sha256=D-L5mVsbakK_-1NCq62dU6wEJpq6I_HxI4PCmR9aj9w,11714
|
|
97
|
-
pulse/serializer.py,sha256=
|
|
98
|
-
pulse/state.py,sha256=
|
|
98
|
+
pulse/serializer.py,sha256=Fz02bUVdpUwI4tBW44naFKBlFcujfyh5ykpwxs5XjAU,8218
|
|
99
|
+
pulse/state/__init__.py,sha256=oipHut-JH15hWrxeo3JpKH1YqDHNc4-xAbSqQ1Yt-Pk,29
|
|
100
|
+
pulse/state/property.py,sha256=pitudvCGBNqK6lePdPrs4Inyy7szo8qcR_0BI30veek,6274
|
|
101
|
+
pulse/state/query_param.py,sha256=7faf244_KJ3yrsBimKTBlNLg6wP96FUuWoZl40oxpyY,14478
|
|
102
|
+
pulse/state/state.py,sha256=_4DcB-og2s5Ui01kDx9HzpNwmAVD_pdCLB0TfYbcnzM,11603
|
|
99
103
|
pulse/test_helpers.py,sha256=4iO5Ymy3SMvSjh-UaAaSdqm1I_SAJMNjdY2iYVro5f8,436
|
|
100
|
-
pulse/transpiler/__init__.py,sha256=
|
|
104
|
+
pulse/transpiler/__init__.py,sha256=0UqeEQ2dMD2tDDkzTASv-StQfKZkPuSvbYTqjkNk-3A,4895
|
|
101
105
|
pulse/transpiler/assets.py,sha256=digd5hKYPEgLOzMtDBHULX3Adj1sfngdvnx3quQmgPY,2299
|
|
102
106
|
pulse/transpiler/builtins.py,sha256=QZrow7XJ2wxGMAE-mgZmaUD03egOnXCbikOg8yMx9vQ,30807
|
|
103
107
|
pulse/transpiler/dynamic_import.py,sha256=1AmBl6agGSoTZBp_94seXH733fewLOULUix9BOBPtKI,3372
|
|
104
108
|
pulse/transpiler/emit_context.py,sha256=GyK6VdsBSTVIewQRhBagaV0hlqLTlPZ1i8EAZGi8SaY,1321
|
|
105
109
|
pulse/transpiler/errors.py,sha256=LSBjLBnMglbl2D94p9JR4y-3jDefk6iHSlUVBaBOTu4,2823
|
|
106
|
-
pulse/transpiler/function.py,sha256=
|
|
110
|
+
pulse/transpiler/function.py,sha256=8-WZC2VcPTGfFeWWQpCltOVPLyr4f1H8pWoCvSnI654,18105
|
|
107
111
|
pulse/transpiler/id.py,sha256=CdgA1NndBpZjv0Hp4XiYbKn7wi-x4zWsFSjEiViKxVk,434
|
|
108
112
|
pulse/transpiler/imports.py,sha256=gWLjRr9jakbUzBGDEepE2RI5Xn_UZwOD4TmlqjNIapM,10302
|
|
109
113
|
pulse/transpiler/js_module.py,sha256=OcIgmrfiA6Hh6aukzgkyX63KsVSHdLzx5ezdKiJFUaQ,11093
|
|
@@ -114,15 +118,16 @@ pulse/transpiler/modules/math.py,sha256=8gjvdYTMqtuOnXrvX_Lwuo0ywAdSl7cpss4TMk6m
|
|
|
114
118
|
pulse/transpiler/modules/pulse/__init__.py,sha256=TfMsiiB53ZFlxdNl7jfCAiMZs-vSRUTxUmqzkLTj-po,91
|
|
115
119
|
pulse/transpiler/modules/pulse/tags.py,sha256=FMN1mWMlnsXa2qO6VmXxUAhFn1uOfGoKPQOjH4ZPlRE,6218
|
|
116
120
|
pulse/transpiler/modules/typing.py,sha256=J9QCkXE6zzwMjiprX2q1BtK-iKLIiS21sQ78JH4RSMc,1716
|
|
117
|
-
pulse/transpiler/nodes.py,sha256=
|
|
121
|
+
pulse/transpiler/nodes.py,sha256=ObdCFIEvtKMVRO8iy1hIN4L-vC4yPqRvhPS6E344-bE,52673
|
|
122
|
+
pulse/transpiler/parse.py,sha256=uz_KDnjmjzFSjGtVKRznWg95P0NHM8CafWgvqrqJcOs,1622
|
|
118
123
|
pulse/transpiler/py_module.py,sha256=um4BYLrbs01bpgv2LEBHTbhXXh8Bs174c3ygv5tHHOg,4410
|
|
119
|
-
pulse/transpiler/transpiler.py,sha256=
|
|
120
|
-
pulse/transpiler/vdom.py,sha256=
|
|
124
|
+
pulse/transpiler/transpiler.py,sha256=bu33-wGNqHGheT_ZqMnQgEARyPG6xyOvuLuixjxIZnI,42761
|
|
125
|
+
pulse/transpiler/vdom.py,sha256=Bf1yw10hQl8BXa6rhr5byRa5ua3qgRsVGNgEtQneA2A,6460
|
|
121
126
|
pulse/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
122
127
|
pulse/types/event_handler.py,sha256=psQCydj-WEtBcFU5JU4mDwvyzkW8V2O0g_VFRU2EOHI,1618
|
|
123
128
|
pulse/user_session.py,sha256=nsnsMgqq2xGJZLpbHRMHUHcLrElMP8WcA4gjGMrcoBk,10208
|
|
124
129
|
pulse/version.py,sha256=711vaM1jVIQPgkisGgKZqwmw019qZIsc_QTae75K2pg,1895
|
|
125
|
-
pulse_framework-0.1.
|
|
126
|
-
pulse_framework-0.1.
|
|
127
|
-
pulse_framework-0.1.
|
|
128
|
-
pulse_framework-0.1.
|
|
130
|
+
pulse_framework-0.1.74.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
131
|
+
pulse_framework-0.1.74.dist-info/entry_points.txt,sha256=i7aohd3QaPu5IcuGKKvsQQEiMYMe5HcF56QEsaLVO64,46
|
|
132
|
+
pulse_framework-0.1.74.dist-info/METADATA,sha256=m4TuEvBPlRud4ARyJi26t3nDDk2gFPvFd4xWi8k2w3k,8299
|
|
133
|
+
pulse_framework-0.1.74.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|