pyview-web 0.4.2__tar.gz → 0.4.3__tar.gz

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 pyview-web might be problematic. Click here for more details.

Files changed (57) hide show
  1. {pyview_web-0.4.2 → pyview_web-0.4.3}/PKG-INFO +1 -1
  2. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyproject.toml +1 -1
  3. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/live_socket.py +38 -4
  4. {pyview_web-0.4.2 → pyview_web-0.4.3}/LICENSE +0 -0
  5. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/__init__.py +0 -0
  6. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/assets/js/app.js +0 -0
  7. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/assets/package-lock.json +0 -0
  8. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/assets/package.json +0 -0
  9. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/async_stream_runner.py +0 -0
  10. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/auth/__init__.py +0 -0
  11. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/auth/provider.py +0 -0
  12. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/auth/required.py +0 -0
  13. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/changesets/__init__.py +0 -0
  14. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/changesets/changesets.py +0 -0
  15. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/cli/__init__.py +0 -0
  16. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/cli/commands/__init__.py +0 -0
  17. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/cli/commands/create_view.py +0 -0
  18. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/cli/main.py +0 -0
  19. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/csrf.py +0 -0
  20. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/events/BaseEventHandler.py +0 -0
  21. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/events/__init__.py +0 -0
  22. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/events/info_event.py +0 -0
  23. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/instrumentation/__init__.py +0 -0
  24. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/instrumentation/interfaces.py +0 -0
  25. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/instrumentation/noop.py +0 -0
  26. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/js.py +0 -0
  27. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/live_routes.py +0 -0
  28. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/live_view.py +0 -0
  29. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/meta.py +0 -0
  30. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/phx_message.py +0 -0
  31. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/pyview.py +0 -0
  32. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/secret.py +0 -0
  33. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/session.py +0 -0
  34. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/static/assets/app.js +0 -0
  35. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/__init__.py +0 -0
  36. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/context_processor.py +0 -0
  37. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/live_template.py +0 -0
  38. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/render_diff.py +0 -0
  39. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/root_template.py +0 -0
  40. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/serializer.py +0 -0
  41. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/template/utils.py +0 -0
  42. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/uploads.py +0 -0
  43. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/__init__.py +0 -0
  44. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/flet/pubsub/__init__.py +0 -0
  45. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/flet/pubsub/pub_sub.py +0 -0
  46. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/__init__.py +0 -0
  47. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/compiler.py +0 -0
  48. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/context.py +0 -0
  49. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/errors.py +0 -0
  50. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/filters.py +0 -0
  51. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/loaders.py +0 -0
  52. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/nodes.py +0 -0
  53. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/template.py +0 -0
  54. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/tree.py +0 -0
  55. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/vendor/ibis/utils.py +0 -0
  56. {pyview_web-0.4.2 → pyview_web-0.4.3}/pyview/ws_handler.py +0 -0
  57. {pyview_web-0.4.2 → pyview_web-0.4.3}/readme.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyview-web
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: LiveView in Python
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -5,7 +5,7 @@ packages = [
5
5
  { include = "pyview" },
6
6
  ]
7
7
 
8
- version = "0.4.2"
8
+ version = "0.4.3"
9
9
  description = "LiveView in Python"
10
10
  authors = ["Larry Ogrodnek <ogrodnek@gmail.com>"]
11
11
  license = "MIT"
@@ -47,9 +47,18 @@ class UnconnectedSocket(Generic[T]):
47
47
  connected: bool = False
48
48
 
49
49
  def allow_upload(
50
- self, upload_name: str, constraints: UploadConstraints, auto_upload: bool = False, progress: Optional[Callable] = None
50
+ self,
51
+ upload_name: str,
52
+ constraints: UploadConstraints,
53
+ auto_upload: bool = False,
54
+ progress: Optional[Callable] = None,
51
55
  ) -> UploadConfig:
52
- return UploadConfig(name=upload_name, constraints=constraints, autoUpload=auto_upload, progress_callback=progress)
56
+ return UploadConfig(
57
+ name=upload_name,
58
+ constraints=constraints,
59
+ autoUpload=auto_upload,
60
+ progress_callback=progress,
61
+ )
53
62
 
54
63
 
55
64
  class ConnectedLiveViewSocket(Generic[T]):
@@ -193,13 +202,38 @@ class ConnectedLiveViewSocket(Generic[T]):
193
202
  except Exception:
194
203
  logger.warning("Error sending navigation message", exc_info=True)
195
204
 
205
+ async def redirect(self, path: str, params: dict[str, Any] = {}):
206
+ """Redirect to a new location with full page reload"""
207
+ to = path
208
+ if params:
209
+ to = to + "?" + urlencode(params)
210
+
211
+ message = [
212
+ None,
213
+ None,
214
+ self.topic,
215
+ "redirect",
216
+ {"to": to},
217
+ ]
218
+
219
+ try:
220
+ await self.websocket.send_text(json.dumps(message))
221
+ except Exception:
222
+ logger.warning("Error sending redirect message", exc_info=True)
223
+
196
224
  async def push_event(self, event: str, value: dict[str, Any]):
197
225
  self.pending_events.append((event, value))
198
226
 
199
227
  def allow_upload(
200
- self, upload_name: str, constraints: UploadConstraints, auto_upload: bool = False, progress: Optional[Callable] = None
228
+ self,
229
+ upload_name: str,
230
+ constraints: UploadConstraints,
231
+ auto_upload: bool = False,
232
+ progress: Optional[Callable] = None,
201
233
  ) -> UploadConfig:
202
- return self.upload_manager.allow_upload(upload_name, constraints, auto_upload, progress)
234
+ return self.upload_manager.allow_upload(
235
+ upload_name, constraints, auto_upload, progress
236
+ )
203
237
 
204
238
  async def close(self):
205
239
  self.connected = False
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes