outleap 0.7.2__tar.gz → 0.7.4__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.
Files changed (44) hide show
  1. {outleap-0.7.2 → outleap-0.7.4}/PKG-INFO +1 -1
  2. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/api_wrappers.py +14 -1
  3. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/utils.py +3 -1
  4. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/version.py +2 -2
  5. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/PKG-INFO +1 -1
  6. {outleap-0.7.2 → outleap-0.7.4}/.coveragerc +0 -0
  7. {outleap-0.7.2 → outleap-0.7.4}/.github/workflows/cis.yml +0 -0
  8. {outleap-0.7.2 → outleap-0.7.4}/.github/workflows/pypi_publish.yml +0 -0
  9. {outleap-0.7.2 → outleap-0.7.4}/.gitignore +0 -0
  10. {outleap-0.7.2 → outleap-0.7.4}/COPYING +0 -0
  11. {outleap-0.7.2 → outleap-0.7.4}/MANIFEST.in +0 -0
  12. {outleap-0.7.2 → outleap-0.7.4}/README.md +0 -0
  13. {outleap-0.7.2 → outleap-0.7.4}/codecov.yml +0 -0
  14. {outleap-0.7.2 → outleap-0.7.4}/examples/README.md +0 -0
  15. {outleap-0.7.2 → outleap-0.7.4}/examples/complex_leap_script.py +0 -0
  16. {outleap-0.7.2 → outleap-0.7.4}/examples/simple_leap_script.py +0 -0
  17. {outleap-0.7.2 → outleap-0.7.4}/pyproject.toml +0 -0
  18. {outleap-0.7.2 → outleap-0.7.4}/setup.cfg +0 -0
  19. {outleap-0.7.2 → outleap-0.7.4}/setup.py +0 -0
  20. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/__init__.py +0 -0
  21. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/bridge.py +0 -0
  22. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/client.py +0 -0
  23. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/protocol.py +0 -0
  24. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/qt_helpers.py +0 -0
  25. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/scripts/__init__.py +0 -0
  26. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/scripts/agent.py +0 -0
  27. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/scripts/inspector.py +0 -0
  28. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/scripts/repl.py +0 -0
  29. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/scripts/ui/inspector.ui +0 -0
  30. {outleap-0.7.2 → outleap-0.7.4}/src/outleap/ui_elems.py +0 -0
  31. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/SOURCES.txt +0 -0
  32. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/dependency_links.txt +0 -0
  33. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/entry_points.txt +0 -0
  34. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/requires.txt +0 -0
  35. {outleap-0.7.2 → outleap-0.7.4}/src/outleap.egg-info/top_level.txt +0 -0
  36. {outleap-0.7.2 → outleap-0.7.4}/static/inspector_screenshot.png +0 -0
  37. {outleap-0.7.2 → outleap-0.7.4}/tests/__init__.py +0 -0
  38. {outleap-0.7.2 → outleap-0.7.4}/tests/test_client.py +0 -0
  39. {outleap-0.7.2 → outleap-0.7.4}/tests/test_protocol.py +0 -0
  40. {outleap-0.7.2 → outleap-0.7.4}/tests/test_stdio.py +0 -0
  41. {outleap-0.7.2 → outleap-0.7.4}/tests/test_ui_elems.py +0 -0
  42. {outleap-0.7.2 → outleap-0.7.4}/tests/test_wrappers.py +0 -0
  43. {outleap-0.7.2 → outleap-0.7.4}/tests/ui_paths.txt +0 -0
  44. {outleap-0.7.2 → outleap-0.7.4}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: outleap
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Tools for using asyncio to control a Second Life viewer over the LEAP protocol
5
5
  Author-email: Salad Dais <83434023+SaladDais@users.noreply.github.com>
6
6
  License: MIT License
@@ -22,12 +22,25 @@ class LEAPAPIWrapper(abc.ABC):
22
22
  assert self._pump_name
23
23
 
24
24
 
25
+ class LEAPAPIError(Exception):
26
+ """Error reported from API."""
27
+
28
+ response_data: Dict
29
+
30
+ def __init__(self, error_message: str, response_data: Dict):
31
+ super().__init__(error_message)
32
+ self.response_data = response_data
33
+
34
+
25
35
  async def _data_unwrapper(data_fut: Awaitable[Dict], inner_elem: str) -> Any:
26
36
  """Unwraps part of the data future while allowing the request itself to remain synchronous"""
27
37
  # We want the request to be sent immediately, without requiring the request to be `await`ed first,
28
38
  # but that means that we have to return a `Coroutine` that will pull the value out of the dict
29
39
  # rather than directly returning the `Future`.
30
- return (await data_fut)[inner_elem]
40
+ response = await data_fut
41
+ if err_msg := response.get("error"):
42
+ raise LEAPAPIError(err_msg, response)
43
+ return response[inner_elem]
31
44
 
32
45
 
33
46
  class CommandAPI(LEAPAPIWrapper):
@@ -62,9 +62,11 @@ _READER_BUFFER_LIMIT = 10_000_000
62
62
  def _stdin_feeder(
63
63
  transport: asyncio.Transport, reader: asyncio.StreamReader, loop: asyncio.AbstractEventLoop
64
64
  ):
65
- while not transport.is_closing():
65
+ while True:
66
66
  data = os.read(0, _READER_BUFFER_LIMIT)
67
67
  if not data:
68
+ if transport.is_closing():
69
+ break
68
70
  time.sleep(0.0000001)
69
71
  continue
70
72
  loop.call_soon_threadsafe(reader.feed_data, data)
@@ -5,7 +5,7 @@ from collections import namedtuple
5
5
  #: A namedtuple of the version info for the current release.
6
6
  _version_info = namedtuple("_version_info", "major minor micro status")
7
7
 
8
- parts = "0.7.2".split(".", 3)
8
+ parts = "0.7.4".split(".", 3)
9
9
  version_info = _version_info(
10
10
  int(parts[0]),
11
11
  int(parts[1]),
@@ -16,4 +16,4 @@ version_info = _version_info(
16
16
  # Remove everything but the 'version_info' from this module.
17
17
  del namedtuple, _version_info, parts
18
18
 
19
- __version__ = "0.7.2"
19
+ __version__ = "0.7.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: outleap
3
- Version: 0.7.2
3
+ Version: 0.7.4
4
4
  Summary: Tools for using asyncio to control a Second Life viewer over the LEAP protocol
5
5
  Author-email: Salad Dais <83434023+SaladDais@users.noreply.github.com>
6
6
  License: MIT License
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
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
File without changes
File without changes
File without changes
File without changes
File without changes