Releases: labthings/labthings-fastapi
v0.1.0-rc1
This is a release candidate to let us test v0.1.0 before releasing. It introduces one new feature (the ability to set the log level on thing loggers) and drops a large amount of deprecated code.
What's Changed
- Add a CI job to test against the OFM test suite by @rwb27 in #280
- Drop dependencies by @rwb27 in #279
- Fix an intermittent test failure by @rwb27 in #284
- Log Level Configuration by @bprobert97 in #282
- Update dependencies by @rwb27 in #285
- Add a
pip frezeto CI job logs by @rwb27 in #287 - Version bump for v0.1.0-rc1 by @rwb27 in #288
Full Changelog: v0.0.17...v0.1.0-rc1
v0.0.17
This is a small bugfix release: it removes __set__ from ActionDescriptor so that it returns to being a "non-data descriptor". This doesn't change LabThings in normal use, but it makes certain things easier in testing.
What's Changed
- Move
__set__from BaseDescriptor to FieldTypedBaseDescriptor by @rwb27 in #274 - Version bump by @rwb27 in #276
Full Changelog: v0.0.16...v0.0.17
v0.0.16
This release tidies up quite a few things internally, and adds some new features. It replaces v0.0.15 which introduced a bug that has now been fixed in #269.
New features
- URLs can now be generated when models are serialised (#242). This will allow actions and properties to include URLs that refer to Things.
- Actions can now get a copy of their logs (#260).
- The Thing Description now includes the
readOnlyfield for properties (#262).
What's Changed
URLForclass to generate URLs at serialisation time by @rwb27 in #242- Loosen timing tolerances by @rwb27 in #251
- Use a
_set_prefix on property setters. by @rwb27 in #249 - Fix a failing unit test on Windows by @rwb27 in #250
- Make BaseDescriptor generic wrt the owning class by @rwb27 in #254
- Make use of
url_for_middlewareto tidy upBlobandInvocationURLs by @rwb27 in #244 - Allow an action to get a copy of the logs raised during the action. by @julianstirling in #260
- Easier access to metadata and other features of properties/actions by @rwb27 in #258
- Add application configuration that propagates to Things by @julianstirling in #261
- Fix a race condition in
test_logsby @rwb27 in #266 - Bump version number for v0.0.15 release by @julianstirling in #267
- Propagate read-only metadata to the Thing Description. by @rwb27 in #262
- Make loading settings robust to subscripted generics. by @julianstirling in #269
- Version bump by @rwb27 in #272
Full Changelog: v0.0.14...v0.0.16
v0.0.15
This release introduced a bug with loading settings, and has been yanked from PyPI. All PRs below are described in release notes for v0.0.16.
This release tidies up quite a few things internally, and adds some new features.
New features
- URLs can now be generated when models are serialised (#242). This will allow actions and properties to include URLs that refer to Things.
- Actions can now get a copy of their logs (#260).
- The Thing Description now includes the
readOnlyfield for properties (#262).
What's Changed
URLForclass to generate URLs at serialisation time by @rwb27 in #242- Loosen timing tolerances by @rwb27 in #251
- Use a
_set_prefix on property setters. by @rwb27 in #249 - Fix a failing unit test on Windows by @rwb27 in #250
- Make BaseDescriptor generic wrt the owning class by @rwb27 in #254
- Make use of
url_for_middlewareto tidy upBlobandInvocationURLs by @rwb27 in #244 - Allow an action to get a copy of the logs raised during the action. by @julianstirling in #260
- Easier access to metadata and other features of properties/actions by @rwb27 in #258
- Add application configuration that propagates to Things by @julianstirling in #261
- Fix a race condition in
test_logsby @rwb27 in #266 - Bump version number for v0.0.15 release by @julianstirling in #267
- Propagate read-only metadata to the Thing Description. by @rwb27 in #262
Full Changelog: v0.0.14...v0.0.15
v0.0.14
This is another primarily bugfix release that focuses on fixing certain return types over HTTPs, and reporting errors back to the user more clearly.
What's Changed
- Ensure action output models are models by @rwb27 in #239
- Add test for action returning an NDArray by @julianstirling in #230
- Relax test for numpy over HTTP by @rwb27 in #238
- Thing client exceptions by @julianstirling in #236
- Very basic tests for ThingClient by @julianstirling in #235
- Fix typo in writing_a_thing tutorial that stops it running. by @julianstirling in #240
- Fallback bugfixes by @julianstirling in #243
- Pretty fallback by @julianstirling in #245
- Bump version number for v0.0.14 release by @julianstirling in #246
Full Changelog: v0.0.13...v0.0.14
v0.0.13
This is primarily a bug fix release, because v0.0.12 had broken URLs in the thing descriptions endpoint. It also adds a feature to the thing server interface and improves error handling when attempting to import Things from broken modules.
What's Changed
- Fix urls for affordances in the server thing descriptions by @julianstirling in #224
- Add
call_async_tasktothing_server_interfaceallowing access toBlockingPortal.callby @julianstirling in #225 - Raise the real import error when a thing cannot import by @julianstirling in #227
- Handle import errors more cleanly by @rwb27 in #226
- Preparing for v0.0.13 release by @julianstirling in #228
- Bump version number to v0.0.13 by @julianstirling in #229
Full Changelog: v0.0.12...v0.0.13
v0.0.12
What's Changed
This release includes significant tidying-up of both the codebase and the documentation, as well as a significant change, which is the move away from using FastAPI dependencies in Thing code.
Updating to v0.0.12 will require migration for Things written using previous versions of LabThings. Most old features are deprecated rather than removed, so it should be possible to migrate code gradually (except for the renamed lt.thing_action and lt.fastapi_endpoint which have had their prefixes removed). See the discussion in #194 for more details.
A full list of changes is below, in the form of pull requests merged since the last release.
- Update metadata for pypi by @bprobert97 in #153
- Simplify property and add type hints by @rwb27 in #155
- Enable bugbear rules by @rwb27 in #172
- Fix a race condition in test_actions_list by @rwb27 in #174
- Fix read-only properties in
DirectThingClientby @rwb27 in #173 - Add InvocationError for an error without traceback. Log cancel at info. by @julianstirling in #157
- Stricter mypy by @rwb27 in #176
- Raise better errors in observe_property, and test them. by @rwb27 in #175
- Test decorated actions by @rwb27 in #177
- Use config not model_config with create_model for pydatic 2.11 compatibility by @julianstirling in #181
- Stricter ruff by @rwb27 in #180
- Drop dependencies by @rwb27 in #194
- Server instantiates things by @rwb27 in #183
- Docs tidy after dropping dependencies by @rwb27 in #195
- Add a
mock_all_slotsoption tocreate_thing_without_serverby @julianstirling in #199 - Deprecation warnings for
v0.0.12by @rwb27 in #209 - Refactor descriptors, decorators and actions by @rwb27 in #213
- Rename fastapi_endpoint to endpoint by @rwb27 in #214
- Accept constraint arguments in property. by @rwb27 in #208
- Adapt to FastAPI changes by @rwb27 in #216
- Fix typing for actions. by @rwb27 in #215
- Version bump and readme by @rwb27 in #219
New Contributors
- @bprobert97 made their first contribution in #153
Full Changelog: v0.0.11...v0.0.12
v0.0.11
What's changed
- A significant overhaul of the documentation, including full docstring coverage and several new overview pages (#138).
- Fix an issue that caused errors if
Blobobjects were present when action invocations were listed (#144). - Improve spelling of documentation (#149).
Full Changelog: v0.0.10...v0.0.11
v0.0.10
What's Changed
- A considerable update to the package documentation (#106)
- An overhaul of Thing Settings to be a subclass of Thing Properties (rather than a dictionary) and to save on set. (#110)
- Rename the Descriptor
PropertyDescriptortoThingPropertyand crate matchingThingSetting(also #110) - Remove the need to install server packages with optional
[server]argument on install (#123) - Considerable overhaul of the Python API by allowing
import labthings-fastapi as ltwhich should simplify imports. (mostly #121, tweaked in #134) - Retired the FileManager as blobs are used for file transfer now (#130)
- Formatting improvements to fallback server (#129)
- Ability to set the HTML code of the fallback server (also #129)
- MJPEG stream is now easier to stop, plus also has better test coverage (#131)
Full Changelog: v0.0.9...v0.0.10
v0.0.9
What's Changed
- Build system changed to hatch from setuptools to make it easier to include non-python files in distribution
- Fix spelling error in fallback server
- Logging message fro deleting expired invocations is changed to debug level to reduce logging noise in applications
- The default argument parser for the CLI can be returned so that downstream programs can add CLI arguments to the parser if needed.
Full Changelog: v0.0.8...v0.0.9