labthings-fastapi 0.2.0rc1__tar.gz → 0.2.0rc2__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 (43) hide show
  1. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/PKG-INFO +1 -1
  2. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/pyproject.toml +1 -1
  3. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/server/__init__.py +7 -10
  4. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_class_settings.py +8 -6
  5. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/.gitignore +0 -0
  6. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/LICENSE +0 -0
  7. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/README.md +0 -0
  8. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/__init__.py +0 -0
  9. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/actions.py +0 -0
  10. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/base_descriptor.py +0 -0
  11. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/client/__init__.py +0 -0
  12. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/endpoints.py +0 -0
  13. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/example_things/__init__.py +0 -0
  14. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/exceptions.py +0 -0
  15. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/global_lock.py +0 -0
  16. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/invocation_contexts.py +0 -0
  17. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/invocations.py +0 -0
  18. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/logs.py +0 -0
  19. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/middleware/__init__.py +0 -0
  20. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/middleware/url_for.py +0 -0
  21. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/notifications.py +0 -0
  22. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/outputs/__init__.py +0 -0
  23. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/outputs/blob.py +0 -0
  24. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/outputs/mjpeg_stream.py +0 -0
  25. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/properties.py +0 -0
  26. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/py.typed +0 -0
  27. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/server/cli.py +0 -0
  28. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/server/config_model.py +0 -0
  29. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/server/fallback.html.jinja +0 -0
  30. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/server/fallback.py +0 -0
  31. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/testing.py +0 -0
  32. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing.py +0 -0
  33. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_description/__init__.py +0 -0
  34. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_description/_model.py +0 -0
  35. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_description/td-json-schema-validation.json +0 -0
  36. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_description/validation.py +0 -0
  37. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_server_interface.py +0 -0
  38. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/thing_slots.py +0 -0
  39. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/types/__init__.py +0 -0
  40. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/types/numpy.py +0 -0
  41. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/utilities/__init__.py +0 -0
  42. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/utilities/introspection.py +0 -0
  43. {labthings_fastapi-0.2.0rc1 → labthings_fastapi-0.2.0rc2}/src/labthings_fastapi/websockets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: labthings-fastapi
3
- Version: 0.2.0rc1
3
+ Version: 0.2.0rc2
4
4
  Summary: An implementation of LabThings using FastAPI
5
5
  Project-URL: Homepage, https://github.com/labthings/labthings-fastapi
6
6
  Project-URL: Bug Tracker, https://github.com/labthings/labthings-fastapi/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "labthings-fastapi"
3
- version = "0.2.0-rc1"
3
+ version = "0.2.0-rc2"
4
4
  authors = [
5
5
  { name="Richard Bowman", email="richard.bowman@cantab.net" },
6
6
  ]
@@ -146,9 +146,9 @@ class ThingServer:
146
146
  self._set_url_for_middleware()
147
147
  self._add_exception_handlers()
148
148
  self.action_manager = ActionManager()
149
- self.app.include_router(self.action_manager.router(), prefix=self._api_prefix)
150
- self.app.include_router(blob.router, prefix=self._api_prefix)
151
- self.app.include_router(self._things_view_router(), prefix=self._api_prefix)
149
+ self.app.include_router(self.action_manager.router(), prefix=self.api_prefix)
150
+ self.app.include_router(blob.router, prefix=self.api_prefix)
151
+ self.app.include_router(self._things_view_router(), prefix=self.api_prefix)
152
152
  self.blocking_portal: Optional[BlockingPortal] = None
153
153
  self.startup_status: dict[str, str | dict] = {"things": {}}
154
154
  global _thing_servers # noqa: F824
@@ -270,10 +270,7 @@ class ThingServer:
270
270
 
271
271
  @property
272
272
  def things(self) -> Mapping[str, Thing]:
273
- """Return a dictionary of all the things.
274
-
275
- :return: a dictionary mapping thing paths to `~lt.Thing` instances.
276
- """
273
+ """A read-only mapping of names to `~lt.Thing` instances."""
277
274
  return MappingProxyType(self._things)
278
275
 
279
276
  @property
@@ -286,7 +283,7 @@ class ThingServer:
286
283
  return self._config.application_config
287
284
 
288
285
  @property
289
- def _api_prefix(self) -> str:
286
+ def api_prefix(self) -> str:
290
287
  r"""A string that prefixes all URLs in the application.
291
288
 
292
289
  This will either be empty, or start with a slash and not
@@ -337,7 +334,7 @@ class ThingServer:
337
334
  """
338
335
  if name not in self._things:
339
336
  raise KeyError(f"No thing named {name} has been added to this server.")
340
- return f"{self._api_prefix}/{name}/"
337
+ return f"{self.api_prefix}/{name}/"
341
338
 
342
339
  def _create_things(self) -> Mapping[str, Thing]:
343
340
  r"""Create the Things, add them to the server, and connect them up if needed.
@@ -475,7 +472,7 @@ class ThingServer:
475
472
  """
476
473
  return {
477
474
  name: thing.thing_description(
478
- path=f"{self._api_prefix}/{name}/", base=str(request.base_url)
475
+ path=f"{self.api_prefix}/{name}/", base=str(request.base_url)
479
476
  )
480
477
  for name, thing in thing_server.things.items()
481
478
  }
@@ -89,17 +89,19 @@ def get_validate_properties_on_set(cls: "type[Thing]") -> bool:
89
89
  :return: whether validation should be performed.
90
90
  """
91
91
  settings = get_class_settings(cls)
92
- if "validate_properties_on_set" not in settings:
92
+ value = settings.get(
93
+ "validate_properties_on_set",
94
+ False,
95
+ )
96
+ if not value:
93
97
  warnings.warn(
94
98
  DefaultWillChangeWarning(
95
99
  "`get_validate_properties_on_set` will become `True` by default "
96
- "in the future. Set this property explicitly to `True` or `False` in "
100
+ "in the future, and may become the only option. "
101
+ "Set this property to `True` in "
97
102
  f"`{cls.__module__}.{cls.__name__}._class_settings` "
98
103
  "to eliminate this warning."
99
104
  ),
100
105
  stacklevel=3,
101
106
  )
102
- return settings.get(
103
- "validate_properties_on_set",
104
- False,
105
- )
107
+ return value