vuer 0.0.25__py3-none-any.whl → 0.0.29rc8__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 vuer might be problematic. Click here for more details.

Files changed (90) hide show
  1. vuer/__init__.py +2 -0
  2. vuer/__pycache__/__init__.cpython-38.pyc +0 -0
  3. vuer/__pycache__/base.cpython-38.pyc +0 -0
  4. vuer/__pycache__/serdes.cpython-38.pyc +0 -0
  5. vuer/__pycache__/server.cpython-38.pyc +0 -0
  6. vuer/base.py +35 -11
  7. vuer/client_build/404.html +18 -0
  8. vuer/client_build/assets/chunks/chunk-033cd999.js +87 -0
  9. vuer/client_build/assets/chunks/chunk-0c07adda.js +17 -0
  10. vuer/client_build/assets/chunks/chunk-0c7b0c67.js +4502 -0
  11. vuer/client_build/assets/chunks/chunk-11242fef.js +87 -0
  12. vuer/client_build/assets/chunks/chunk-11d172c6.js +220 -0
  13. vuer/client_build/assets/chunks/chunk-1573e13d.js +87 -0
  14. vuer/client_build/assets/chunks/chunk-1581dd07.js +4502 -0
  15. vuer/client_build/assets/chunks/chunk-181cf52e.js +4502 -0
  16. vuer/client_build/assets/chunks/chunk-1ffa2560.js +1 -0
  17. vuer/client_build/assets/chunks/chunk-2b009735.js +87 -0
  18. vuer/client_build/assets/chunks/chunk-2c9e68dc.js +220 -0
  19. vuer/client_build/assets/chunks/chunk-32d88b6c.js +87 -0
  20. vuer/client_build/assets/chunks/chunk-3d6a174a.js +87 -0
  21. vuer/client_build/assets/chunks/chunk-3d735b94.js +2 -0
  22. vuer/client_build/assets/chunks/chunk-4291d1b1.js +4502 -0
  23. vuer/client_build/assets/chunks/chunk-46602646.js +1 -0
  24. vuer/client_build/assets/chunks/chunk-4909c71c.js +1 -0
  25. vuer/client_build/assets/chunks/chunk-6b435eb3.js +220 -0
  26. vuer/client_build/assets/chunks/chunk-98620ee4.js +87 -0
  27. vuer/client_build/assets/chunks/chunk-9d4c7361.js +220 -0
  28. vuer/client_build/assets/chunks/chunk-a6eac392.js +220 -0
  29. vuer/client_build/assets/chunks/chunk-b0bf2d23.js +1 -0
  30. vuer/client_build/assets/chunks/chunk-bdd7c22e.js +220 -0
  31. vuer/client_build/assets/chunks/chunk-c353222d.js +4502 -0
  32. vuer/client_build/assets/chunks/chunk-c7c41535.js +4502 -0
  33. vuer/client_build/assets/chunks/chunk-cd30d081.js +1 -0
  34. vuer/client_build/assets/chunks/chunk-ceb3463c.js +24 -0
  35. vuer/client_build/assets/chunks/chunk-cf010ec4.js +1 -0
  36. vuer/client_build/assets/chunks/chunk-d7665daa.js +1 -0
  37. vuer/client_build/assets/chunks/chunk-d8996854.js +1 -0
  38. vuer/client_build/assets/chunks/chunk-e1dbff7e.js +220 -0
  39. vuer/client_build/assets/chunks/chunk-f6ac826f.js +4502 -0
  40. vuer/client_build/assets/entries/entry-client-routing.09665e16.js +2 -0
  41. vuer/client_build/assets/entries/entry-client-routing.9b421a83.js +2 -0
  42. vuer/client_build/assets/entries/entry-client-routing.b091f770.js +2 -0
  43. vuer/client_build/assets/entries/entry-client-routing.b0e9432f.js +2 -0
  44. vuer/client_build/assets/entries/entry-client-routing.d2f1fe7f.js +2 -0
  45. vuer/client_build/assets/entries/entry-client-routing.f109ec3a.js +2 -0
  46. vuer/client_build/assets/entries/entry-client-routing.fef74cf7.js +2 -0
  47. vuer/client_build/assets/entries/entry-server-routing.05de3b91.js +1 -0
  48. vuer/client_build/assets/entries/entry-server-routing.05f74fe9.js +1 -0
  49. vuer/client_build/assets/entries/entry-server-routing.9a7f23b8.js +1 -0
  50. vuer/client_build/assets/entries/entry-server-routing.c86174f6.js +1 -0
  51. vuer/client_build/assets/entries/entry-server-routing.cdb49a95.js +1 -0
  52. vuer/client_build/assets/entries/entry-server-routing.ed130910.js +1 -0
  53. vuer/client_build/assets/entries/entry-server-routing.fddd53eb.js +1 -0
  54. vuer/client_build/assets/entries/pages_hands.page.08c7d15b.js +1 -0
  55. vuer/client_build/assets/entries/pages_hands.page.12ccbd32.js +1 -0
  56. vuer/client_build/assets/entries/pages_hands.page.40ebd865.js +1 -0
  57. vuer/client_build/assets/entries/pages_hands.page.6f1e3303.js +1 -0
  58. vuer/client_build/assets/entries/pages_hands.page.724feffe.js +1 -0
  59. vuer/client_build/assets/entries/pages_hands.page.85f51479.js +1 -0
  60. vuer/client_build/assets/entries/pages_hands.page.fb90f80e.js +1 -0
  61. vuer/client_build/assets/entries/pages_index.page.25e5c467.js +97 -0
  62. vuer/client_build/assets/entries/pages_index.page.25ffff8e.js +97 -0
  63. vuer/client_build/assets/entries/pages_index.page.323784ad.js +97 -0
  64. vuer/client_build/assets/entries/pages_index.page.76e4864a.js +97 -0
  65. vuer/client_build/assets/entries/pages_index.page.95009002.js +97 -0
  66. vuer/client_build/assets/entries/pages_index.page.fb9c94fd.js +97 -0
  67. vuer/client_build/assets/entries/pages_index.page.fbb86891.js +97 -0
  68. vuer/client_build/assets/entries/renderer_default.page.client.98b62a91.js +1 -0
  69. vuer/client_build/assets/entries/renderer_default.page.server.extractAssets.4ed993c7.js +1 -0
  70. vuer/client_build/assets/entries/renderer_error.page.4485c2ac.js +1 -0
  71. vuer/client_build/assets/static/default.page.client.7be06a4d.css +1 -0
  72. vuer/client_build/assets/static/loading.ade72bfe.svg +5 -0
  73. vuer/client_build/assets/static/logo.bebe2e90.svg +36 -0
  74. vuer/client_build/hands/index.html +19 -0
  75. vuer/client_build/hands/index.pageContext.json +1 -0
  76. vuer/client_build/index.html +19 -0
  77. vuer/client_build/index.pageContext.json +1 -0
  78. vuer/client_build/vike.json +11 -0
  79. vuer/schemas/__pycache__/html_components.cpython-38.pyc +0 -0
  80. vuer/schemas/__pycache__/scene_components.cpython-38.pyc +0 -0
  81. vuer/schemas/html_components.py +7 -3
  82. vuer/schemas/scene_components.py +60 -6
  83. vuer/server.py +61 -16
  84. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/METADATA +20 -10
  85. vuer-0.0.29rc8.dist-info/RECORD +109 -0
  86. vuer-0.0.25.dist-info/RECORD +0 -37
  87. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/LICENSE +0 -0
  88. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/WHEEL +0 -0
  89. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/entry_points.txt +0 -0
  90. {vuer-0.0.25.dist-info → vuer-0.0.29rc8.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,8 @@
1
- import numpy as np
2
- from numpy._typing import NDArray
3
1
  from typing import List
4
2
 
3
+ import numpy as np
4
+ from numpy.typing import NDArray
5
+
5
6
  from vuer.schemas.html_components import BlockElement, Image, Element
6
7
 
7
8
 
@@ -310,6 +311,37 @@ class Pcd(SceneElement):
310
311
 
311
312
 
312
313
  class CameraView(SceneElement):
314
+ """CameraView for rendering from arbitrary camera poses.
315
+
316
+ :param fov: The vertical field of view of the camera. Defaults to 50.
317
+ :type fov: float, optional
318
+ :param width: The width of the camera image. Defaults to 320.
319
+ :type width: int, optional
320
+ :param height: The height of the camera image. Defaults to 240.
321
+ :type height: int, optional
322
+ :param key: The key of the camera view. Defaults to "ego".
323
+ :type key: str, optional
324
+ :param position: The position of the camera. Defaults to [0, 0, 0].
325
+ :type position: List[float], optional
326
+ :param rotation: The rotation of the camera. Defaults to [0, 0, 0]
327
+ :type rotation: List[float], optional
328
+ :param stream: The stream of the camera. Defaults to "ondemand".
329
+ :type stream: str, optional
330
+ :param fps: The frames per second of the camera. Defaults to 30.
331
+ :type fps: int, optional
332
+ :param near: The near field of the camera. Defaults to 0.1.
333
+ :type near: float, optional
334
+ :param far: The far field of the camera. Defaults to 20.
335
+ :type far: float, optional
336
+ :param renderDepth: Whether to render depth. If set, returns value["depthFrame"]. Defaults to True.
337
+ :type renderDepth: bool, optional
338
+ :param showFrustum: Whether to show the frustum. Defaults to True.
339
+ :type showFrustum: bool, optional
340
+ :param downsample: The downsample rate. Defaults to 1.
341
+ :type downsample: int, optional
342
+ :param distanceToCamera: The distance to the camera. Defaults to 2.
343
+ :type distanceToCamera: float, optional
344
+ """
313
345
  tag = "CameraView"
314
346
 
315
347
 
@@ -383,15 +415,26 @@ class Movable(SceneElement):
383
415
  tag = "Movable"
384
416
 
385
417
 
418
+ class Hands(SceneElement):
419
+ tag = "Hands"
420
+
421
+ def __init__(self, fps=30, key="hands", eventTypes=('squeeze',), stream=False, left=None, right=None, **kwargs):
422
+ super().__init__(fps=fps, key=key, eventTypes=eventTypes, stream=stream, left=left, right=right, **kwargs)
423
+
424
+
386
425
  class Obj(SceneElement):
387
426
  tag = "Obj"
388
427
 
389
- def __init__(self, src, mtl=None, materials=None, **kwargs):
428
+ def __init__(self, src=None, mtl=None, text=None, buff=None, materials=None, **kwargs):
390
429
  """
391
430
  :param src: The source of the obj file. Can be a url or a local file.
392
431
  :type src: str
393
- :param mtlSrc: The source of the mtl file. Can be a url or a local file.
394
- :type mtlSrc: str
432
+ :param mtl: The source of the mtl file. Can be a url or a local file.
433
+ :type mtl: str
434
+ :param text: The text content of the obj file, allow one to load a scene from a string.
435
+ :type text: str
436
+ :param buff: The binary content of the obj file. This is the most efficient, because you are sending binaries..
437
+ :type buff: bytes
395
438
  :param materials: A list of materials to be used for the obj file.
396
439
  :type materials: List[String]
397
440
 
@@ -399,7 +442,9 @@ class Obj(SceneElement):
399
442
  """
400
443
  self.src = src
401
444
  self.mtl = mtl
402
- self.materials = []
445
+ self.text = text
446
+ self.buff = buff
447
+ self.materials = materials
403
448
 
404
449
  super().__init__(**kwargs)
405
450
 
@@ -440,6 +485,15 @@ class Ply(SceneElement):
440
485
 
441
486
 
442
487
  class Glb(SceneElement):
488
+ """Glb Component
489
+
490
+ # this follows the material type
491
+ :param materialType: Literal["basic", ...]
492
+ :param material: {
493
+ side=0: inside, side=1: outsie, side=2: both.
494
+ }
495
+
496
+ """
443
497
  tag = "Glb"
444
498
 
445
499
 
vuer/server.py CHANGED
@@ -2,17 +2,19 @@ import asyncio
2
2
  from asyncio import sleep
3
3
  from collections import deque, defaultdict
4
4
  from functools import partial
5
+ from pathlib import Path
5
6
  from typing import cast, Callable, Coroutine, Dict
6
7
  from uuid import uuid4
7
8
 
8
- from aiohttp.web_request import Request
9
+ from aiohttp.hdrs import UPGRADE
10
+ from aiohttp.web_request import Request, BaseRequest
9
11
  from aiohttp.web_response import Response
10
12
  from aiohttp.web_ws import WebSocketResponse
11
13
  from msgpack import packb, unpackb
12
14
  from params_proto import Proto, PrefixProto
13
15
  from websockets import ConnectionClosedError
14
16
 
15
- from vuer.base import Server
17
+ from vuer.base import Server, handle_file_request, websocket_handler
16
18
  from vuer.events import (
17
19
  ClientEvent,
18
20
  NullEvent,
@@ -247,6 +249,9 @@ class VuerSession:
247
249
  yield from self.downlink_queue
248
250
 
249
251
 
252
+ DEFAULT_PORT = 8012
253
+
254
+
250
255
  class Vuer(PrefixProto, Server):
251
256
  """Vuer Server
252
257
 
@@ -281,16 +286,20 @@ class Vuer(PrefixProto, Server):
281
286
  """
282
287
 
283
288
  name = "vuer"
284
- uri = "ws://localhost:8012"
285
- # change to vuer.dash.ml
286
289
  domain = "https://vuer.ai"
287
- port = 8012
290
+ port = DEFAULT_PORT
288
291
  free_port = True
289
292
  static_root = "."
290
293
  queue_len = 100 # use a max length to avoid the memory from blowing up.
291
294
  cors = "https://vuer.ai,https://dash.ml,http://localhost:8000,http://127.0.0.1:8000,*"
292
295
  queries = Proto({}, help="query parameters to pass")
293
296
 
297
+ cert = Proto(None, dtype=str, help="the path to the SSL certificate")
298
+ key = Proto(None, dtype=str, help="the path to the SSL key")
299
+ ca_cert = Proto(None, dtype=str, help="the trusted root CA certificates")
300
+
301
+ client_root = Path(__file__).parent / "client_build"
302
+
294
303
  device = "cuda"
295
304
 
296
305
  def _proxy(self, ws_id) -> "VuerSession":
@@ -431,11 +440,20 @@ class Vuer(PrefixProto, Server):
431
440
  Get the URL for the Tassa.
432
441
  :return: The URL for the Tassa.
433
442
  """
434
- if self.queries:
435
- query_str = "&".join([f"{k}={v}" for k, v in self.queries.items()])
436
- return f"{self.domain}?ws={self.uri}&" + query_str
443
+ if self.port != DEFAULT_PORT:
444
+ uri = f"ws://localhost:{self.port}"
445
+
446
+ if self.queries:
447
+ query_str = "&".join([f"{k}={v}" for k, v in self.queries.items()])
448
+ return f"{self.domain}?ws={uri}&" + query_str
449
+
450
+ return f"{self.domain}?ws={uri}"
451
+ else:
452
+ if self.queries:
453
+ query_str = "&".join([f"{k}={v}" for k, v in self.queries.items()])
454
+ return f"{self.domain}?" + query_str
437
455
 
438
- return f"{self.domain}?ws={self.uri}"
456
+ return f"{self.domain}"
439
457
 
440
458
  async def send(self, ws_id, event: ServerEvent = None, event_bytes=None):
441
459
  ws = self.ws[ws_id]
@@ -488,7 +506,7 @@ class Vuer(PrefixProto, Server):
488
506
 
489
507
  async def rpc_stream(self, ws_id, event: ServerEvent = None, event_bytes=None):
490
508
  """This RPC offers multiple responses."""
491
- raise NotImplemented("This is not implemented yet.")
509
+ raise NotImplementedError("This is not implemented yet.")
492
510
 
493
511
  async def close_ws(self, ws_id):
494
512
  # uplink is moved to the proxy object. Clearned by garbage collection.
@@ -606,10 +624,10 @@ class Vuer(PrefixProto, Server):
606
624
  await self.close_ws(ws_id)
607
625
 
608
626
  def add_handler(
609
- self,
610
- event_type: str,
611
- fn: EventHandler = None,
612
- once: bool = False,
627
+ self,
628
+ event_type: str,
629
+ fn: EventHandler = None,
630
+ once: bool = False,
613
631
  ) -> Callable[[], None]:
614
632
  """Adding event handlers to the vuer server.
615
633
 
@@ -671,12 +689,31 @@ class Vuer(PrefixProto, Server):
671
689
 
672
690
  return ttl_handler()
673
691
 
692
+ async def socket_index(self, request: BaseRequest):
693
+ """This is the relay object for sending events to the server.
694
+
695
+ Todo: add API for specifying the websocket ID. Or just broadcast to all.
696
+ Todo: add type hint
697
+
698
+ Interface:
699
+ <uri>/relay?sid=<websocket_id>
700
+
701
+ :return:
702
+ - Status 200
703
+ - Status 400
704
+
705
+ """
706
+ headers = request.headers
707
+ if "websocket" != headers.get(UPGRADE, "").lower().strip():
708
+ return await handle_file_request(request, self.client_root, filename="index.html")
709
+ else:
710
+ return await websocket_handler(request, self.downlink)
711
+
674
712
  def run(self, kill=None, *args, **kwargs):
675
713
  import os
676
714
 
677
715
  # protocol, host, _ = self.uri.split(":")
678
716
  # port = int(_)
679
-
680
717
  if kill or self.free_port:
681
718
  import time
682
719
  from killport import kill_ports
@@ -684,7 +721,15 @@ class Vuer(PrefixProto, Server):
684
721
  kill_ports(ports=[self.port])
685
722
  time.sleep(0.01)
686
723
 
687
- self._socket("", self.downlink)
724
+ # Serve the client build locally.
725
+ # self._socket("", self.downlink)
726
+ # self._static_file("", Path(__file__).parent / "client_build", filename="index.html")
727
+
728
+ # use the same endpoint for websocket and file serving.
729
+ self._route("", self.socket_index, method="GET")
730
+ self._static("/assets", self.client_root / "assets")
731
+ self._static("/hands", self.client_root / "hands")
732
+
688
733
  # serve local files via /static endpoint
689
734
  self._static("/static", self.static_root)
690
735
  print("Serving file://" + os.path.abspath(self.static_root), "at", "/static")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vuer
3
- Version: 0.0.25
3
+ Version: 0.0.29rc8
4
4
  Home-page: https://github.com/geyang/vuer
5
5
  Author: Ge Yang<ge.ike.yang@gmail.com>
6
6
  Author-email: ge.ike.yang@gmail.com
@@ -10,18 +10,19 @@ Classifier: Programming Language :: Python
10
10
  Requires-Python: >=3.7
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: killport
14
13
  Requires-Dist: params-proto >=2.11.16
15
14
  Requires-Dist: pillow
16
15
  Requires-Dist: msgpack
17
- Requires-Dist: numpy
16
+ Requires-Dist: numpy >=1.21
18
17
  Requires-Dist: websockets
19
18
  Provides-Extra: all
20
19
  Requires-Dist: aiohttp ; extra == 'all'
21
20
  Requires-Dist: aiohttp-cors ; extra == 'all'
21
+ Requires-Dist: killport ; extra == 'all'
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: aiohttp ; extra == 'dev'
24
24
  Requires-Dist: aiohttp-cors ; extra == 'dev'
25
+ Requires-Dist: killport ; extra == 'dev'
25
26
  Requires-Dist: black ==22.3.0 ; extra == 'dev'
26
27
  Requires-Dist: pylint ==2.13.4 ; extra == 'dev'
27
28
  Requires-Dist: pytest ==7.1.2 ; extra == 'dev'
@@ -29,9 +30,18 @@ Requires-Dist: sphinx ==7.1.2 ; extra == 'dev'
29
30
  Requires-Dist: furo ; extra == 'dev'
30
31
  Requires-Dist: sphinx-copybutton ; extra == 'dev'
31
32
  Requires-Dist: myst-parser ; extra == 'dev'
32
- Requires-Dist: termcolor ; extra == 'dev'
33
33
  Requires-Dist: trimesh ; extra == 'dev'
34
34
  Requires-Dist: tqdm ; extra == 'dev'
35
+ Provides-Extra: example
36
+ Requires-Dist: aiohttp ; extra == 'example'
37
+ Requires-Dist: aiohttp-cors ; extra == 'example'
38
+ Requires-Dist: killport ; extra == 'example'
39
+ Requires-Dist: open3d <0.16.0,>=0.15.0 ; extra == 'example'
40
+ Requires-Dist: trimesh ; extra == 'example'
41
+ Requires-Dist: cmx ; extra == 'example'
42
+ Requires-Dist: functional-notations ; extra == 'example'
43
+ Requires-Dist: ml-logger ; extra == 'example'
44
+ Requires-Dist: opencv-python ; extra == 'example'
35
45
 
36
46
  <h2>Vuer: Modern High-Performance Visualization for AI & Robotics in VR
37
47
  <br/>
@@ -68,7 +78,7 @@ pip install -U 'vuer[all]'
68
78
  ```
69
79
 
70
80
  Here is an example that loads a URDF file and displays it in the browser. For a more comprehensive list of examples, please refer to
71
- the [examples](https://docs.vuer.ai/en/latest/examples.html) page.
81
+ the [examples](https://docs.vuer.ai/en/latest/examples/01_trimesh.html) page.
72
82
 
73
83
  ```python
74
84
  from vuer import Vuer, VuerSession
@@ -91,13 +101,13 @@ async def main(session: VuerSession):
91
101
 
92
102
  To get a quick overview of what you can do with `vuer`, check out the following:
93
103
 
94
- - take a look at the example gallery [here](https://docs.vuer.ai/en/latest/examples.html)
95
- - or try to take a look at this demo [here](https://docs.vuer.ai/en/latest/examples.html#demo)
104
+ - take a look at the example gallery [here](https://docs.vuer.ai/en/latest/examples/01_trimesh.html)
105
+ - or try to take a look at this demo with a Unitree Go1 robot in front of a flight of stairs [here](https://docs.vuer.ai/en/latest/tutorials/robotics/urdf_go1_stairs.html)
96
106
 
97
107
  For a comprehensive list of visualization components, please refer to
98
- the [API documentation on Components](https://docs.vuer.ai/en/latest/api.html).
108
+ the [API documentation on Components](https://docs.vuer.ai/en/latest/api/vuer.html).
99
109
 
100
- For a comprehensive list of data types, please refer to the [API documentation on Data Types](https://docs.vuer.ai/en/latest/api.html).
110
+ For a comprehensive list of data types, please refer to the [API documentation on Data Types](https://docs.vuer.ai/en/latest/api/types.html).
101
111
 
102
112
  Now, to run the examples, first download the example datasets.
103
113
 
@@ -121,7 +131,7 @@ python 01_trimesh.py
121
131
  Documentation is a crucial part of the `vuer` ecosystem. To contribute to documentation and usage examples, simply:
122
132
 
123
133
  ```bash
124
- pip install -e '.[dev]'
134
+ pip install -e '.[all]'
125
135
  make docs
126
136
  ```
127
137
  This should fire up an http server at the port `8888`, and you can view the documentation at `http://localhost:8888`.
@@ -0,0 +1,109 @@
1
+ vuer/__init__.py,sha256=kbjORSc64WWVHcx3eJB1wnCzhIF76eX5g-JAXYEDM4Q,519
2
+ vuer/base.py,sha256=chIs9cM8kRu3lRUvXb-96rNzKysC-FiMvodjNkNG4ck,4087
3
+ vuer/events.py,sha256=8AAzkfbm5jHkeMh17Z57n8YTxF4mheWC3Qbya4XkQSc,7291
4
+ vuer/schemas.py,sha256=aZOocE02gO43SLLfeYSxxac0x38TmyTcfs_iFh5hsJ4,18152
5
+ vuer/serdes.py,sha256=gD2iA9Yypu1QjocneOT3Nc0y6q_mdHn9zW1ko5j3I7c,2600
6
+ vuer/server.py,sha256=tsOXagIpKPk7056vUz1AnmOgluKlhTNwYXoAbWiq-lI,22616
7
+ vuer/types.py,sha256=N2KLa0fl6z8Jm6cJwZoD8Vqrins_AayG5BCGk1p3Eek,1279
8
+ vuer/__pycache__/__init__.cpython-38.pyc,sha256=5iTFXy2ivwedwlehtJwBje7Bh3j86bu9TZh_waR8kvs,644
9
+ vuer/__pycache__/base.cpython-38.pyc,sha256=SqFm94Q-YCxQQVpSFQUdRsbSzuLh73qcNDe4rzxTyaM,4553
10
+ vuer/__pycache__/events.cpython-38.pyc,sha256=zx3bXeJixqOyCFe2nA7qpq6jiCJ49kRaXO-xONGUyeQ,9616
11
+ vuer/__pycache__/schemas.cpython-38.pyc,sha256=hvY9Aak8zE-zKcWiwuNe6DghOw9qH_zSe_FtkBOAPPk,23234
12
+ vuer/__pycache__/serdes.cpython-38.pyc,sha256=GncycLg8qwrlKR-X5el9txThHkY_zqejmZlpQKAeJnA,2253
13
+ vuer/__pycache__/server.cpython-38.pyc,sha256=HhrlTfHGBrl43_SQV65Rhw7gYNxix6LA-SZ-yst8X00,20667
14
+ vuer/__pycache__/types.cpython-38.pyc,sha256=IhlXtkT-XWM0V1420FDuoqIYnpvRvekYVkGqEK7fAV8,1819
15
+ vuer/addons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ vuer/addons/nerf_vuer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ vuer/addons/nerf_vuer/control_components.py,sha256=K4PU0nD572L4J7lLFfShWficWZQnH4t-x6WWMrAVw8g,290
18
+ vuer/addons/nerf_vuer/mixins.py,sha256=fQuW3adf6X2xw_PSfS145TNfbQ9OoTKuv8mYEo6Pt6A,12966
19
+ vuer/addons/nerf_vuer/nerf_vuer.py,sha256=R5vI7g_sObbW1LTZ2VnR7pci7aO8iUtkKIbNnbqHnRU,5183
20
+ vuer/addons/nerf_vuer/render_components.py,sha256=XilHnJySJWVgmdUbPFNYyc_YWV8O5AcKkBEZOUFbnMI,3821
21
+ vuer/addons/nerf_vuer/render_nodes.py,sha256=5TKqIbMPiOtBxfF4FQI6uB0w_9FTfGiwS8xRbhPa0_g,14441
22
+ vuer/addons/nerfuer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ vuer/addons/nerfuer/render_nodes.py,sha256=EJK5N3xne5n7abTaAoLPX7SRqQ_tEen9zNypvSnZTTw,4465
24
+ vuer/client_build/404.html,sha256=AWmvWvRNU7gBvT1L-urF7ZPMmACa9DgjuEwlQAJjeqM,1532
25
+ vuer/client_build/index.html,sha256=Leb08ReVKO67XnFUvRIDXYsgMaE9MW_ClldMOclgSTQ,1550
26
+ vuer/client_build/index.pageContext.json,sha256=cDzjtPrpBS_xn6mAImpqN95PBiIlsHlXTCxI_6aDFkY,276
27
+ vuer/client_build/vike.json,sha256=ySG86nFxLXP-i4T3iTf11H9QlSce0aritnTRU40ySIY,242
28
+ vuer/client_build/assets/chunks/chunk-033cd999.js,sha256=srTkxxlDzZwlotX77EmhmM9GCTOMf_uk1U5K5YGTXp0,438180
29
+ vuer/client_build/assets/chunks/chunk-0c07adda.js,sha256=G-_ZoAa3vh97Mffg3FzsD53DnrfNCwjithd03WfVpck,8249
30
+ vuer/client_build/assets/chunks/chunk-0c7b0c67.js,sha256=-HoKnpN3SSOW5k8g1dTc00cH_1tQcGqf2mLpV6DOn0Y,1986485
31
+ vuer/client_build/assets/chunks/chunk-11242fef.js,sha256=rMJDyqJJSOmBFlKKX-hFqhG9BTKaP5AJO_n1vko6oFU,438180
32
+ vuer/client_build/assets/chunks/chunk-11d172c6.js,sha256=58yxNp598EHZeaSuigC0Ccb8t8-OlL6ErDbeOfp8LUU,108791
33
+ vuer/client_build/assets/chunks/chunk-1573e13d.js,sha256=T1gtBBdbijaTSgZtOrXn3wd85FiOkT7IYLh68rUbDSM,438180
34
+ vuer/client_build/assets/chunks/chunk-1581dd07.js,sha256=lXC1jZEAJa9Aknb67oJafur29GxxXQfm8knXE7QkfOg,1983748
35
+ vuer/client_build/assets/chunks/chunk-181cf52e.js,sha256=ijdEC1I3I0ZcGNqKJH7e20VTFW8NPfpYyBV8GIP-BuI,1985389
36
+ vuer/client_build/assets/chunks/chunk-1ffa2560.js,sha256=BqaBhBVihBaFAUHyCknvEHqcN6g4UOqMbOdpvsNxB8k,831
37
+ vuer/client_build/assets/chunks/chunk-2b009735.js,sha256=D0xb98lm9mmtOnycN5BSU55q73Sk7RSk62fB6soKEoE,438180
38
+ vuer/client_build/assets/chunks/chunk-2c9e68dc.js,sha256=c5MF_5q3C232xwiKVmQqLe26xJ1uFq3PouIuUrx6FsU,108791
39
+ vuer/client_build/assets/chunks/chunk-32d88b6c.js,sha256=L661GV4fm90Ysju4-fFp5PBU6yw2r0vimbgDcU4wm9w,438180
40
+ vuer/client_build/assets/chunks/chunk-3d6a174a.js,sha256=enR-b3wtAYpMOmNN4uDRReRKR68a3pG-4FZxcSYlz-g,438180
41
+ vuer/client_build/assets/chunks/chunk-3d735b94.js,sha256=yjoC8h2P6t9wwGVT3swGm7UncFTQpk7I2YfQjgNxfYM,29712
42
+ vuer/client_build/assets/chunks/chunk-4291d1b1.js,sha256=caj5GXNIfqVYERy2XSjmhMgsbIiVFO-lhLMhM7s9rpA,1985459
43
+ vuer/client_build/assets/chunks/chunk-46602646.js,sha256=DxKfLSjQOJLi7cPJDUtVbR18H4YlTGJss_vWyJQv614,831
44
+ vuer/client_build/assets/chunks/chunk-4909c71c.js,sha256=9CIfMe68yzGhdPg5UQ9BBSeaSpT5ui3ppcdytWlM2Sg,831
45
+ vuer/client_build/assets/chunks/chunk-6b435eb3.js,sha256=3IchKPedBnW9N3YIx04DP_umVjBSqnRLQZfZFREUIjU,108791
46
+ vuer/client_build/assets/chunks/chunk-98620ee4.js,sha256=fqZ66IPMc_9VxCkURkK6lFWpUHju9XfvV4NtGMlClUE,438180
47
+ vuer/client_build/assets/chunks/chunk-9d4c7361.js,sha256=cVtnI8nzruGMgme5nu14zwFo7pGrE6NXbZr6x7MuYG8,108791
48
+ vuer/client_build/assets/chunks/chunk-a6eac392.js,sha256=BQM-PwZU5K2h4C_bcD64xnl0s030c-OqzlqiLeyjN1A,108791
49
+ vuer/client_build/assets/chunks/chunk-b0bf2d23.js,sha256=chxgRiqHEiRhMzpHjPQ22CHjG-9b7c7inIiMjn4epz8,831
50
+ vuer/client_build/assets/chunks/chunk-bdd7c22e.js,sha256=HK8G4gGI8PP-iuOa16kUfkQ4YjYH8Pnr3kcUnEuk4mQ,108791
51
+ vuer/client_build/assets/chunks/chunk-c353222d.js,sha256=PvVvehKFnFjXPhAHxuWINtstaLPbDAr6uW9tdvv0MuA,1986632
52
+ vuer/client_build/assets/chunks/chunk-c7c41535.js,sha256=RjhgzQBJdcKtsThTl67N0xPnmzhwNeY_hZ5wpbkGGUo,1986125
53
+ vuer/client_build/assets/chunks/chunk-cd30d081.js,sha256=5EtBc6uG4z8ASS4ZvjHUy5r2ypPU8Cq97kqWXBRgjOo,831
54
+ vuer/client_build/assets/chunks/chunk-ceb3463c.js,sha256=DmVmSTcdBpl3pR_7uQOydv2tnx5h-KWY2BD4AvrdvFU,134260
55
+ vuer/client_build/assets/chunks/chunk-cf010ec4.js,sha256=xyzNT9selncq9GK6bqVO9HHiSowLhfkhMUK5lgPZ9BY,876
56
+ vuer/client_build/assets/chunks/chunk-d7665daa.js,sha256=aGH3ahNp1JeDOP3PWv8a2FFuFHVvVfFUqPR_ta6exL0,831
57
+ vuer/client_build/assets/chunks/chunk-d8996854.js,sha256=O6sup2_Hwe6dbCRio7aaAuzcyf86JWl4wpflqV2RwqQ,831
58
+ vuer/client_build/assets/chunks/chunk-e1dbff7e.js,sha256=Fzv9qC0wXc3KGA8_LL5GVjdbJF9NTSgcWz8ZwpDDPMg,108791
59
+ vuer/client_build/assets/chunks/chunk-f6ac826f.js,sha256=gDHbpGbi3ws7yDXqo8vAUAW4FQdD4j9hq-Brsh51sK8,1984031
60
+ vuer/client_build/assets/entries/entry-client-routing.09665e16.js,sha256=cNvp0SW4Q_0eVSNp8lqov3BPt9Q2r_xbch7MiEOcD9E,40226
61
+ vuer/client_build/assets/entries/entry-client-routing.9b421a83.js,sha256=pitGYTn0-EcTbxr8u0xAW0QVanHYKbjOyT2sSzo83IU,40226
62
+ vuer/client_build/assets/entries/entry-client-routing.b091f770.js,sha256=39n7GGL5DtqcplTpaaZjk7VewkRKhSDwk6motdQ-5js,40226
63
+ vuer/client_build/assets/entries/entry-client-routing.b0e9432f.js,sha256=f_m_anbjnvgSDlEDjCYpBLxLqfqdgqACUbek3C8hiqM,40226
64
+ vuer/client_build/assets/entries/entry-client-routing.d2f1fe7f.js,sha256=sJRh4AiSgKZhfMO4BZuUf1SLsY0NNrfsnZKe5p_6Gho,40226
65
+ vuer/client_build/assets/entries/entry-client-routing.f109ec3a.js,sha256=tHXsJovB_E4a8jP3D8DG52lwLVrt4antc0vS7JOFp2M,40226
66
+ vuer/client_build/assets/entries/entry-client-routing.fef74cf7.js,sha256=Cjp9RmTxtPpI9YoQJ2u6JHjwEdxo_9V1TEkL0iIDNTM,40226
67
+ vuer/client_build/assets/entries/entry-server-routing.05de3b91.js,sha256=eMzKqCaeDxwJEvtV7k1YUcVieXeHAX100q3C_ArC46o,2920
68
+ vuer/client_build/assets/entries/entry-server-routing.05f74fe9.js,sha256=2AEFQmHYC2DOkLrBJQ6vddxJ0kYnkT09chnUjhpC5Tc,2920
69
+ vuer/client_build/assets/entries/entry-server-routing.9a7f23b8.js,sha256=vaYB3LWsZK-xZY22-NbdThmYJsCoW7Mny7ai2Rx_O7o,2920
70
+ vuer/client_build/assets/entries/entry-server-routing.c86174f6.js,sha256=iqVaAXVGvyzCOf9tLvl735Yj3mVrMn5v-0_QvA01kB0,2920
71
+ vuer/client_build/assets/entries/entry-server-routing.cdb49a95.js,sha256=8gQurl-HIY-Va6oYyR1opS6MrzYLIxpNw55QVas_ZDg,2920
72
+ vuer/client_build/assets/entries/entry-server-routing.ed130910.js,sha256=hoAxEWdZPjS9dv1SjhbQaKsBj79KeY7SV8XFCONq5p8,2920
73
+ vuer/client_build/assets/entries/entry-server-routing.fddd53eb.js,sha256=Qf9XMJOkWQYDonA_NnfT7BYhgGHMN7ooNvkk5Y3eYXo,2920
74
+ vuer/client_build/assets/entries/pages_hands.page.08c7d15b.js,sha256=U9l5y7p9wnamqkjnXzmh6iWOBOAMjyZpcljN16So9i8,689
75
+ vuer/client_build/assets/entries/pages_hands.page.12ccbd32.js,sha256=-HJLU6R-vxgB08OA7HN-4-eiutKv74kMLEvOQe55Y_A,689
76
+ vuer/client_build/assets/entries/pages_hands.page.40ebd865.js,sha256=gY2XmWc6Ez28Mixx_ZxAA8lVBQryTbgeIx9vISPAGWc,689
77
+ vuer/client_build/assets/entries/pages_hands.page.6f1e3303.js,sha256=GI1MPYBkVVPReZCUnhKOhu9Z5I2EEtASWxibQbV8KIE,689
78
+ vuer/client_build/assets/entries/pages_hands.page.724feffe.js,sha256=l2Ok2Zwwje_8Jy3do7AURAbs0LNRNK9pGUB-2O0rnwI,689
79
+ vuer/client_build/assets/entries/pages_hands.page.85f51479.js,sha256=BJ24r5ERj6orO6_gg_VTOzACC0PlmAvR3a597w89OhM,689
80
+ vuer/client_build/assets/entries/pages_hands.page.fb90f80e.js,sha256=KSOJSp92sXCorG56oSymbsM3s3DJm3FUNGeX4eLOUTo,689
81
+ vuer/client_build/assets/entries/pages_index.page.25e5c467.js,sha256=Ha5iy2n14MjyeniYLydv0wa6rGDWvAdIQl5eCUzygoY,46281
82
+ vuer/client_build/assets/entries/pages_index.page.25ffff8e.js,sha256=qySOw0QRaM-nAlB1ZmLlcWO9T7m1WfCtwOEx1IKSu0Q,46266
83
+ vuer/client_build/assets/entries/pages_index.page.323784ad.js,sha256=oknAjjztKr2-jlrG1fIL_aahhGz15wntLeQKlNy65n8,46281
84
+ vuer/client_build/assets/entries/pages_index.page.76e4864a.js,sha256=PcV5xJ7FH7-DI7nWgrNBOvf9Bh1RDInhp2DUQDrQ47A,46281
85
+ vuer/client_build/assets/entries/pages_index.page.95009002.js,sha256=u0uhWAYwEM2Jhq63qhAGMEw-izkoyKSvqtI26cYzAZA,46281
86
+ vuer/client_build/assets/entries/pages_index.page.fb9c94fd.js,sha256=fpbu-ptbWUQGgvNe9OIwA5fW6dGXe90pWCc1fErcM5k,46281
87
+ vuer/client_build/assets/entries/pages_index.page.fbb86891.js,sha256=vjHE6HAjHBgPH_NLRNb87B3r4X_y0eB56dG-8sKP6b8,46281
88
+ vuer/client_build/assets/entries/renderer_default.page.client.98b62a91.js,sha256=NxQY5wVzLECxNuV9eXjDJ18DD0Rg1DR9g_VaxmY--I8,1198
89
+ vuer/client_build/assets/entries/renderer_default.page.server.extractAssets.4ed993c7.js,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
90
+ vuer/client_build/assets/entries/renderer_error.page.4485c2ac.js,sha256=NWA-7ne7c20ryo5bc-5c4w3hf-zaQRkRlYytS8r6J9w,333
91
+ vuer/client_build/assets/static/default.page.client.7be06a4d.css,sha256=e-BqTfB-OA4YWwF_M13Vx0MmFjx2VI2J7NFAziGM4hU,725
92
+ vuer/client_build/assets/static/loading.ade72bfe.svg,sha256=recr_hKSLeAIQFkCv9XEi5pIXJCdXgohH4WNBeYcqu8,504
93
+ vuer/client_build/assets/static/logo.bebe2e90.svg,sha256=vr4ukFyN_pgQCYZZTj73l8rIXKUB0SvkrqNcgmebgLA,5786
94
+ vuer/client_build/hands/index.html,sha256=xTj5KqrKdo5YzK8o_-v9cfiCsq_Ph7VUM5fmH6aEDJ0,1554
95
+ vuer/client_build/hands/index.pageContext.json,sha256=nRC_8Jo3t6gqQUHn2FDfo6cPOJPMonkkWWBfoBG1wzI,276
96
+ vuer/schemas/__init__.py,sha256=ZI6UyeLZXqJbHmp6LiE3Q3mHvt1zeV-SJmmcqq-wBZE,94
97
+ vuer/schemas/drei_components.py,sha256=U9svEOnNprhZaobLagaFnqEtZxo5hiriSqjDnvQutoA,6989
98
+ vuer/schemas/html_components.py,sha256=KGvRo8b-34Kch81cTNPffRLKuU8oa5SX_0xZ1lkJhxY,6134
99
+ vuer/schemas/scene_components.py,sha256=-4EqZSpDbv_EOCZarPgqSwxR1cAnjLKX3rP8f1Db1X0,18902
100
+ vuer/schemas/__pycache__/__init__.cpython-38.pyc,sha256=NRnVrpIDBKne93xOUY1-WpavCG7vwYiqU3VDTEEwuUE,221
101
+ vuer/schemas/__pycache__/drei_components.cpython-38.pyc,sha256=g_ufcKxf-XKfZLdUV-HqKnjIrgxGWFv51aHLWQgH-ws,7712
102
+ vuer/schemas/__pycache__/html_components.cpython-38.pyc,sha256=sk2gDqu_zNQMS-PC8d3L90bvjFjTBb8-UKK9Ka5aoAw,8348
103
+ vuer/schemas/__pycache__/scene_components.cpython-38.pyc,sha256=FCBjSZs-lX5YvhcL3K0s_T_oz2Fm8NAdd-XsPoXQc9s,22109
104
+ vuer-0.0.29rc8.dist-info/LICENSE,sha256=MGF-inVBUaGe2mEjqT0g6XsHIXwoNXgNHqD7Z1MzR0k,1063
105
+ vuer-0.0.29rc8.dist-info/METADATA,sha256=KZaWqRm1Ed9PJ0pRvb2HngG370-c8vtiI57FSEZoj6E,5349
106
+ vuer-0.0.29rc8.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
107
+ vuer-0.0.29rc8.dist-info/entry_points.txt,sha256=J_NM6fbpipmD9oP7cdxd1UyBR8mVEQVx0xjlE_56yss,41
108
+ vuer-0.0.29rc8.dist-info/top_level.txt,sha256=ermmVkwvGFAK4gfSgDIwOmKpxwpqNt-oo7gVQQUSHok,5
109
+ vuer-0.0.29rc8.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- vuer/__init__.py,sha256=cP-Ua-bx3mq-3hsnFHAbiGwTnm25hm4wcXp1KhMKCJg,455
2
- vuer/base.py,sha256=T6zLf21Taknzc8766Af54_iCu1UNdU1cSJDcuDVcqiY,3079
3
- vuer/events.py,sha256=8AAzkfbm5jHkeMh17Z57n8YTxF4mheWC3Qbya4XkQSc,7291
4
- vuer/schemas.py,sha256=aZOocE02gO43SLLfeYSxxac0x38TmyTcfs_iFh5hsJ4,18152
5
- vuer/serdes.py,sha256=gD2iA9Yypu1QjocneOT3Nc0y6q_mdHn9zW1ko5j3I7c,2600
6
- vuer/server.py,sha256=prJVBaNdWEfz2aIdUDZHY70i34zuQLO63P3F6hSenCk,20889
7
- vuer/types.py,sha256=N2KLa0fl6z8Jm6cJwZoD8Vqrins_AayG5BCGk1p3Eek,1279
8
- vuer/__pycache__/__init__.cpython-38.pyc,sha256=AGYwJRSMg5cOJ06a6e5KJl20TiGnZjvVjdqlwLMmjLc,188
9
- vuer/__pycache__/base.cpython-38.pyc,sha256=Z5EFlRX9RqZsQUszvqPtAhLv_5QG5wlUXW7JbFd_XDc,3824
10
- vuer/__pycache__/events.cpython-38.pyc,sha256=zx3bXeJixqOyCFe2nA7qpq6jiCJ49kRaXO-xONGUyeQ,9616
11
- vuer/__pycache__/schemas.cpython-38.pyc,sha256=hvY9Aak8zE-zKcWiwuNe6DghOw9qH_zSe_FtkBOAPPk,23234
12
- vuer/__pycache__/serdes.cpython-38.pyc,sha256=KMxTjPEWuSGn2bqBAl5OLIDSCSoqfPDGfk3fvNnRDYA,2253
13
- vuer/__pycache__/server.cpython-38.pyc,sha256=9VZF8i5IfMkHXR0GrigX1-fJqukfG4TOYkQT6MdnNNA,19641
14
- vuer/__pycache__/types.cpython-38.pyc,sha256=IhlXtkT-XWM0V1420FDuoqIYnpvRvekYVkGqEK7fAV8,1819
15
- vuer/addons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- vuer/addons/nerf_vuer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- vuer/addons/nerf_vuer/control_components.py,sha256=K4PU0nD572L4J7lLFfShWficWZQnH4t-x6WWMrAVw8g,290
18
- vuer/addons/nerf_vuer/mixins.py,sha256=fQuW3adf6X2xw_PSfS145TNfbQ9OoTKuv8mYEo6Pt6A,12966
19
- vuer/addons/nerf_vuer/nerf_vuer.py,sha256=R5vI7g_sObbW1LTZ2VnR7pci7aO8iUtkKIbNnbqHnRU,5183
20
- vuer/addons/nerf_vuer/render_components.py,sha256=XilHnJySJWVgmdUbPFNYyc_YWV8O5AcKkBEZOUFbnMI,3821
21
- vuer/addons/nerf_vuer/render_nodes.py,sha256=5TKqIbMPiOtBxfF4FQI6uB0w_9FTfGiwS8xRbhPa0_g,14441
22
- vuer/addons/nerfuer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- vuer/addons/nerfuer/render_nodes.py,sha256=EJK5N3xne5n7abTaAoLPX7SRqQ_tEen9zNypvSnZTTw,4465
24
- vuer/schemas/__init__.py,sha256=ZI6UyeLZXqJbHmp6LiE3Q3mHvt1zeV-SJmmcqq-wBZE,94
25
- vuer/schemas/drei_components.py,sha256=U9svEOnNprhZaobLagaFnqEtZxo5hiriSqjDnvQutoA,6989
26
- vuer/schemas/html_components.py,sha256=NCqmSPic-ExPrXqNPXbKjtTXMB8sGBywIpE6cXpiy08,5926
27
- vuer/schemas/scene_components.py,sha256=3u8q2AwgpkkAVifsNXXagmHIvJvWqDwlHCS-QbOwZRM,16540
28
- vuer/schemas/__pycache__/__init__.cpython-38.pyc,sha256=NRnVrpIDBKne93xOUY1-WpavCG7vwYiqU3VDTEEwuUE,221
29
- vuer/schemas/__pycache__/drei_components.cpython-38.pyc,sha256=g_ufcKxf-XKfZLdUV-HqKnjIrgxGWFv51aHLWQgH-ws,7712
30
- vuer/schemas/__pycache__/html_components.cpython-38.pyc,sha256=q0DMFwNkYbnaH1A8w3BowMiQAlmGpFWOOKsjLVE6CIk,8215
31
- vuer/schemas/__pycache__/scene_components.cpython-38.pyc,sha256=2jBvnUfJeoy24SMQdYvHzxXL-BwY0cXBCt9LDMk-Nw8,19670
32
- vuer-0.0.25.dist-info/LICENSE,sha256=MGF-inVBUaGe2mEjqT0g6XsHIXwoNXgNHqD7Z1MzR0k,1063
33
- vuer-0.0.25.dist-info/METADATA,sha256=bhipMPQyCeX2VbazZyVsFWh_GAG_PsAqQSv88ut2rAo,4754
34
- vuer-0.0.25.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
35
- vuer-0.0.25.dist-info/entry_points.txt,sha256=J_NM6fbpipmD9oP7cdxd1UyBR8mVEQVx0xjlE_56yss,41
36
- vuer-0.0.25.dist-info/top_level.txt,sha256=ermmVkwvGFAK4gfSgDIwOmKpxwpqNt-oo7gVQQUSHok,5
37
- vuer-0.0.25.dist-info/RECORD,,