Changelog =========== This page keeps a fairly detailed, human readable version of what has changed, and whats new for each version of the library. Unreleased ---------- - Add ``log=True`` to :meth:`pydoover.tags.BoundTag.set` (and ``increment`` / ``decrement``) to publish a logged data point at the end of the current loop instead of waiting for the next periodic flush - Add :meth:`pydoover.tags.BoundTag.delete` as the explicit alternative to ``tag.set(None)`` - Add typed tag classes :class:`pydoover.tags.Number`, :class:`pydoover.tags.Boolean`, and :class:`pydoover.tags.String` for tag declarations - Add automatic logging triggers via a single ``log_on=`` kwarg taking descriptor objects: :class:`~pydoover.tags.Cross`, :class:`~pydoover.tags.Rise`, :class:`~pydoover.tags.Fall` (with optional ``deadband``) and :class:`~pydoover.tags.Delta` (absolute or percentage change from last logged value) for numerics; :class:`~pydoover.tags.AnyChange`, :class:`~pydoover.tags.Enter`, :class:`~pydoover.tags.Exit` for booleans and strings v0.4.18 ------- - Add `MockDeviceAgentInterface` for testing purposes - Fix issue with `wait_for_interval` not working correctly v0.4.17 ------- - Fix issue with `listen_channel` not outputting to stderr correctly on connection error v0.4.16 ------- - Fix issue with `listen_channel` not outputting to stdout correctly on connection error v0.4.15 ------- - `RemoteComponent` now inherits from `Container` to support adding `children`. - The default `serial_port` for `config.ModbusInterface` is now `/dev/ttyAMA0` to match the Doovit port. v0.4.14 ------- - Wait up to 300 seconds for device agent to be ready before running `setup` in docker applications - Add `log_formatter` and `log_filters` parameters to `run_app()` v0.4.13 ------- - Fix bug with pydoover cli type hints - Other minor fixes and features v0.4.12 ------- - Fix issue with `log_threshold` in `ui.Variable` - Fix issue with `set_tag` and `set_tags` in `cloud.Application` - Fix issue with `set_tag` and `set_tags` in `cloud.Application` v0.4.11 ------- - Add `disabled` to `ui.Action` - Add built-in enum support for `config.Enum` - Add default parameters to `get_tag` and `get_global_tag` - Add support for `owner_org_key` in `cloud.Application` - Add default device agent for device agent - Fix issue with empty config schema - Add default values for `ui.AlertStream` v0.4.10 ------- - Add health checking for docker apps - Add support for `additional_elements` in `config.ConfigSchema` - Add generic `.attribute_name` support for `config.Object` objects. v0.4.9 ------ - Fix import error in `docker.platform_iface` v0.4.8 ------ - Add `get_immunity_seconds` and `set_immunity_seconds` to platform interface v0.4.7 ------ - Add message logging before a shutdown event is sent - Add `create_alarm` to `doover.utils` package v0.4.6 ------ - New alarms util functionality - New platform interface power management calls - Improved main loop sleeping logic - Bug fixes v0.4.5 ------ - Fix a problem with `get_di_events` and inconsistent return types between sync and async - Set any missing config elements to their default value at runtime - Add `ApplicationVariant` enum - Don't process `shutdown_at` events before DDA is synced - Add `__eq__` and `__repr__` methods to `Range` class - Improve `is_being_observed` behaviour to disregard the device agent ID v0.4.4 ------ - Add a global_interaction parameter to ui.callback - Fix interactions to work with app namespaces - Change deprecated `.utcnow()` to `.now(tz=timezone.utc)` - Separate staging and production config for applications in `doover_config.json` - Fixes for publishing apps to the Doover App Store v0.4.3 ------ - Fix accidental extra argument in UI which stopped display names from setting v0.4.2 ------ - ConfigEntries are tz aware - Make interaction docstring raw - Only include deployment data if it exists - Don't export some unnecessary _key values for app config v0.4.1 ------ - Remove explicit imports to allow usage without optional dependencies installed. v0.4.0 ------ - Support for new applications - Support for offline DDA - RTD documentation - Open source pydoover - Add testing structures - Move to UV from Pipenv - Add linting and automated testing v0.3.0 ------- - TODO (various changes from unstable 5/3/2024) v0.2.0 ------- - Add package to PyPi v0.1.2 ------- - Add async support to modbus, camera and device agent docker services, while maintaining sync support. - Autodetect saved doover config in API client (saved through CLI) - Change interaction default behaviour to preserve current state - Add colours to sliders in UI - Add online/offline ticker status - Add optional title to multiplot - Add conditions argument to elements - Add `get_channel_messages_in_window` API endpoint to fetch messages in a time window v0.1.1 ------ Initial version release of pydoover. Primarily for testing CI/CD pipeline with Dockerhub deployments.