1486 Commits

Author SHA1 Message Date
aferk
a46945ed29 Update DOI link 2025-11-06 08:52:34 +01:00
aferk
21809b49e8 Update copyright notice to comply with regulations 2025-11-04 08:52:55 +01:00
Mose Müller
c45f1bd489 Merge pull request #258 from tiqi-group/release-v0.10.21
updates to v0.10.21
v0.10.21
2025-08-28 13:31:09 +02:00
Mose Müller
5784818e5a updates to v0.10.21 2025-08-28 13:30:47 +02:00
Mose Müller
64a7097568 Merge pull request #257 from tiqi-group/remove-warning-on-type-change
removes _warn_on_type_change from DataService setattr
2025-08-28 13:27:36 +02:00
Mose Müller
5ef382728c removes warning test 2025-08-28 13:26:23 +02:00
Mose Müller
51d6189002 removes _warn_on_type_change from DataService setattr
Adding keys to dictionaries trigger this warning, so I would consider
this warning to not be useful any more.
2025-08-28 13:24:33 +02:00
Mose Müller
71e29c890e Merge pull request #256 from tiqi-group/release-v0.10.19
updates to version v0.10.19
v0.10.19
2025-07-08 15:39:59 +02:00
Mose Müller
6e407ba1d6 updates to version v0.10.19 2025-07-08 15:39:40 +02:00
Mose Müller
4fb5e56aa8 Merge pull request #255 from tiqi-group/fix/property_observer_race_condition
fix: race-condition in PropertyObserver
2025-07-08 15:37:45 +02:00
Mose Müller
d55ba3a85f fix: race-condition in PropertyObserver
When a proxy of a pydase client initialised with
block_until_connected=False is set as an attribute of a data service, a
race condition can happen: when the client connects while the
DataServiceObserver is being initialised, the property_deps_dict
attribute might not be set yet while the DataServiceObserver was already
added as an observer to the client proxy. The proxy will then emit a
notification, which in turn tries to get the dependent properties from
the property_deps_dict attribute, which has not been initialised yet.
The resulting exception will not tell the proxy that the client has
connected.
2025-07-08 15:29:27 +02:00
Mose Müller
265d9a7ef5 Merge pull request #254 from tiqi-group/fix/serialize_exception
fix: serialize exception
2025-07-03 15:59:35 +02:00
Mose Müller
4cd36b4a2b tests: adds test for exception serialization 2025-07-03 15:55:41 +02:00
Mose Müller
1b2ff38aff fix: serializing exception that didn't take an argument
An exception that was instantiated without any argument could not be
serilaized before. Now, I check if any args were supplied and set the
value to an empty string if no args were passed.
2025-07-03 15:55:25 +02:00
Mose Müller
4b243985e8 Merge pull request #253 from tiqi-group/feat/reset_frontend_value_on_exception
feat: reset frontend value to last value on exception
2025-07-03 15:53:36 +02:00
Mose Müller
8615bdeadc npm run build 2025-07-03 15:52:32 +02:00
Mose Müller
d24893a989 feat: reset frontend value to last value on exception
When changing a value in the frontend and this operation triggers an
exception in the backend, reset the frontend value to the last known
value.
2025-07-03 15:52:22 +02:00
Mose Müller
661603ef71 Merge pull request #252 from tiqi-group/alert-autofix-4
Potential fix for code scanning alert no. 4: Workflow does not contain permissions
2025-06-27 08:56:48 +02:00
Mose Müller
d6947b0f43 Potential fix for code scanning alert no. 4: Workflow does not contain permissions
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-06-27 08:54:57 +02:00
Mose Müller
93d38651e8 Merge pull request #251 from tiqi-group/release-v0.10.18
updates to version v0.10.18
v0.10.18
2025-06-27 08:48:25 +02:00
Mose Müller
72a3c199d9 updates to version v0.10.18 2025-06-27 08:48:07 +02:00
Mose Müller
7914e2fa7b Merge pull request #250 from tiqi-group/feat/client_auto_update_proxy
feat: adds auto_update_proxy argument to pydase.Client
2025-06-27 08:44:35 +02:00
Mose Müller
0a4f898fde docs: updates python client section 2025-06-27 08:43:36 +02:00
Mose Müller
a9aa55fc99 client: adds auto_update_proxy argument
If False, this disables automatic updates from the server by not
subscribing to the "nofity" event. This is useful for request-only where
real-time synchronization is not needed.
2025-06-27 08:02:33 +02:00
Mose Müller
fd5a230fa4 Merge pull request #249 from tiqi-group/feat/improve-client-proxy-serialization
chore: improve client proxy serialization
2025-06-23 14:11:31 +02:00
Mose Müller
243b46aadb test: adds test for ProxyClass
This test timed out before implementing the changes.
2025-06-23 14:09:52 +02:00
Mose Müller
0f1ca84df5 client: updates proxy.serialize logic
The proxy needs to properly handle serialization requests. If such a
requests comes from the asyncio loop used by the socketio client, this
would result in a deadlock. This happens, for example, when the observer
is notified of a change triggered within a socketio event. To prevent
this, I am checking the current loop against the socketio client loop.
If it's the same, return the _service_representation value, which is set
when pydase.Client connects to the server. I do the same when the client
is not connected (to prevent BadNamespaceErrors).
Every other invokation of serialize results in an API call to the
server.
2025-06-23 09:11:43 +02:00
Mose Müller
6438a07305 client: updates proxy._service_representation every time the client connects 2025-06-23 09:01:01 +02:00
Mose Müller
80bfd209df Merge pull request #248 from tiqi-group/docs/adds_doi_badge
docs: adds DOI badge
2025-06-20 10:46:48 +02:00
Mose Müller
e065b1fb22 docs: adds DOI badge 2025-06-20 10:45:01 +02:00
Mose Müller
977cee32b9 Merge pull request #247 from tiqi-group/feat/adding-direct-api-access-tests
feat: adds client tests for direct api functions
2025-06-19 14:04:30 +02:00
Mose Müller
96f695020b adds client tests for direct api functions 2025-06-19 14:03:34 +02:00
Mose Müller
33ce01865a Merge pull request #246 from tiqi-group/feat/direct-api-access-client
Feat: direct api access client
2025-06-19 13:57:25 +02:00
Mose Müller
f5374573cd docs: adds "Direct API Access" section to python-client.md 2025-06-19 13:54:52 +02:00
Mose Müller
43c6b5e817 fix: getter_proxy didn't return value 2025-06-19 13:52:31 +02:00
Mose Müller
37380c6d24 adds get_value, update_value and trigger_method functions to pydase.Client 2025-06-19 13:45:36 +02:00
Mose Müller
ae21656e83 pulls get_value out of ProxyClassMixin 2025-06-19 13:38:51 +02:00
Mose Müller
a4b4f179c6 Merge pull request #245 from tiqi-group/release-v0.10.17
updates to version v0.10.17
v0.10.17
2025-06-19 10:43:45 +02:00
Mose Müller
c6beca3961 updates to version v0.10.17 2025-06-19 10:43:13 +02:00
Mose Müller
2fa8240e54 Merge pull request #244 from tiqi-group/feat/add_python_3_13_support
feat: official support for python 3.13
2025-06-19 10:42:11 +02:00
Mose Müller
369587a50c adds python 3.13 to checked versions in the github workflow 2025-06-19 10:39:40 +02:00
Mose Müller
25343f6909 Merge pull request #243 from tiqi-group/fix/test_image
fix: pathlib.Path signature annotation change in python 3.13
2025-06-19 10:37:53 +02:00
Mose Müller
c136c9f3de fix: pathlib.Path signature annotation change in python 3.13 2025-06-19 10:35:35 +02:00
Mose Müller
8897c2fe4c Merge pull request #242 from tiqi-group/refactor/web-server-initialisation
Refactor: web server initialisation
2025-06-19 10:26:12 +02:00
Mose Müller
80c5c4e99d fix: check if loop is running 2025-06-19 10:23:25 +02:00
Mose Müller
423441a74c initialise WebServer in pydase.Server constructor
The WebServer can be initialised in the pydase.Server constructor
without any problems. This would allow users to access the socketio
server before starting the pydase.Server.
2025-06-19 10:23:07 +02:00
Mose Müller
9ec60e3891 Merge pull request #241 from tiqi-group/fix/sio_server_warnings
fix: check if loop is running in SocketIOHandler
2025-06-19 10:00:53 +02:00
Mose Müller
8bde104322 fix: check if loop is running in SocketIOHandler
Before emitting sio events in the SocketIOHandler, I have to check if
the loop is actually still running. This caused issues with pytest as
pytest was tearing down asyncio tasks and stopping the loop, while the
sio handler was still trying to send those logs to the sio clients.
2025-06-19 09:59:08 +02:00
Mose Müller
9b57b6984e Merge pull request #240 from tiqi-group/fix/enable-web-argument
Fix: enable web argument handling
2025-06-19 09:53:29 +02:00
Mose Müller
e5b89f2581 always emit exceptions (also when enable_web is false)
replaces enable_web check with loop.is_running()
2025-06-19 09:50:09 +02:00