Mose Müller
348f8aac9b
removes tests for get_object_attr_from_path (uses get_object_by_path_parts internally)
2024-04-26 09:49:01 +02:00
Mose Müller
25e578fbba
parse_full_access_path can match floats inside brackets now
2024-04-26 09:42:26 +02:00
Mose Müller
1ee6a299b2
updates tests for is_property_attribute
2024-04-26 09:25:11 +02:00
Mose Müller
f315cd62d6
moves render_in_frontend function to decorators module, removes unused update_value_if_change function
2024-04-26 09:10:05 +02:00
Mose Müller
87d172b94b
simplifies, documents and tests parse_serialized_key helper function
2024-04-26 08:15:21 +02:00
Mose Müller
a2c60a9c40
chore: replacing old method, adding TODO
2024-04-25 17:44:16 +02:00
Mose Müller
66376e2e6c
removes parse_keyed_attribute
2024-04-25 17:40:33 +02:00
Mose Müller
d1c00a2612
using parse_full_access_path instead of path.split(".") in state manager
2024-04-25 17:34:48 +02:00
Mose Müller
6dd878a062
uses helper method in serializer
2024-04-25 17:33:42 +02:00
Mose Müller
2898b62b9c
adds parse_serialized_key and get_object_by_path_parts helper methods
2024-04-25 17:33:32 +02:00
Mose Müller
b29c86ac2c
updates Serializer functions
...
- using parse_full_access_path instead of parse_keyed_attribute
- renames get_next_level_dict_by_key to get_container_item_by_key
- replaces ensure_exists and get_nested_value by get_or_create_item_in_container
This allows us to handle access paths like "dict_attr['key'][0].some_attr".
2024-04-25 16:52:40 +02:00
Mose Müller
c75b203c3d
creates functions to split full access paths and combine the atomic parts back together
2024-04-25 16:30:20 +02:00
Mose Müller
036e80b920
removes warning when using dict as attribute
2024-04-25 14:23:59 +02:00
Mose Müller
de7badd007
fixes exception message
2024-04-25 14:22:49 +02:00
Mose Müller
4e9e1384df
updates get_next_level_dict_by_key to handle lists and dictionaries
2024-04-25 10:52:36 +02:00
Mose Müller
5f7cc7f671
fixes type
2024-04-25 10:51:53 +02:00
Mose Müller
8fd83fbd7d
updates get_object_attr_from_path to support dictionaries
2024-04-23 14:21:39 +02:00
Mose Müller
564eeeb433
adds dictionary support to state_manager (__update_attribute_by_path)
2024-04-22 19:32:09 +02:00
Mose Müller
216368571a
fixes parse_keyed_attributes
2024-04-22 19:31:29 +02:00
Mose Müller
32e2a8a4d1
replaces parse_list_attr_and_index with parse_keyed_attribute to support dictionaries
2024-04-22 19:11:02 +02:00
Mose Müller
d24c66e522
npm run build
2024-04-22 18:38:27 +02:00
Mose Müller
9cfcb1ba0c
npm run build
2024-04-22 17:47:14 +02:00
Mose Müller
ba24deecb7
adds note that coloured enum values must be unique
2024-04-17 11:47:43 +02:00
Mose Müller
8832c879a1
npm run build
2024-04-17 09:21:51 +02:00
Mose Müller
7233e5933b
updates client documentation
2024-04-16 10:41:18 +02:00
Mose Müller
6977b795e5
updates pydase.Server docstring
2024-04-16 10:21:25 +02:00
Mose Müller
245b1844c9
adds update_value method to reduce code duplication
2024-04-16 10:08:42 +02:00
Mose Müller
d48ae9f5ad
adds trigger_method function to reduce code duplication
2024-04-16 09:59:39 +02:00
Mose Müller
cf637d19ae
adds docstring to ProxyClass
2024-04-16 09:49:00 +02:00
Mose Müller
edfb7d0341
Using super() in proxy class constructor
2024-04-16 09:36:34 +02:00
Mose Müller
7b06786307
updates pydase.Client documentation and constructor arguments
2024-04-16 09:34:29 +02:00
Mose Müller
5eeaefdd63
refactors client sio event setup
2024-04-15 08:16:46 +02:00
Mose Müller
fbada6d818
adds ProxyList methods
2024-04-09 13:43:43 +02:00
Mose Müller
507f286963
adds blocking kwarg to client
...
If blocking is true, client init will wait until it could connect to the server.
2024-04-09 13:27:55 +02:00
Mose Müller
61c7dc8333
client retries to connect if server is not available. Connection process is not blocking anymore
2024-04-09 09:25:01 +02:00
Mose Müller
ad2800aaf6
improves exception deserialization
...
Tries to use builtins exceptions if possible.
2024-04-08 11:13:14 +02:00
Mose Müller
5b762db535
fixes detection of property dependencies for classes inheriting from other observables
...
Inheriting from a class that itself has defined properties, you cannot get those properties by calling
vars(type(obj)). Instead, you have to go through all the classes' members and check if they are properties.
You can either do this using dir(type(obj)) and get the members using getattr or just use inspect.getmembers.
2024-04-08 10:23:24 +02:00
Mose Müller
73b2355d35
fixes Client specific errors when setting proxy attributes / methods
...
Also ignores mypy errors
2024-04-08 10:23:24 +02:00
Mose Müller
6335ea21ad
fixes warnings in ProxyClassMixin
2024-04-04 16:30:26 +02:00
Mose Müller
9cb667581a
removes exposed dump method (circular import apparently)
...
fixes test
2024-04-04 16:26:28 +02:00
Mose Müller
5936e7091e
updates sio events
...
- adds disconnect event which marks the DeviceConnection as disconnected
- updates connect event to notify the observer about the new state and set connected to True
2024-04-04 16:20:31 +02:00
Mose Müller
ad0fd8e833
updates proxy class usage
...
- ProxyClass class is inheriting from DeviceConnection and is only used for topmost proxy
- classes of nested proxy objects are dynamically created to keep their component types
- adds _initialise method to ProxyClassMixin as I cannot pass sio_client and loop to each
component_class (initialising a class with multiple base classes will pass the arguments passed to
the constructor to each initialiser function)
2024-04-04 16:19:29 +02:00
Mose Müller
473c6660e6
fixes warnings
2024-04-04 11:41:12 +02:00
Mose Müller
5511ebc808
updates client proxy
...
- will now be changed in place (instead of being overwritten on reconnect, which was the only way
of adding or removing property getters / setters)
- replaces getters/setters and methods of proxy with __setattr__ and __getattribute__ functionality
- replaces ProxyClassFactory with ProxyClass and ProxyLoader. The latter updates the former on
reconnect
- client does not need to be a DataService anymore. It only establishes the connection and holds
the reference to the proxy class.
2024-04-04 11:31:14 +02:00
Mose Müller
439665177d
removes unused attribute of ProxyConnection
2024-04-03 10:54:03 +02:00
Mose Müller
c0b25c0581
adds Client to default exports of pydase
2024-04-03 10:47:46 +02:00
Mose Müller
60a7dda60a
restructures client to have separate thread for its asyncio loop
2024-04-03 10:28:06 +02:00
Mose Müller
381d98b078
updates is_property_attribute to accept the full_access_path instead of the attr_name only
2024-03-29 08:47:24 +01:00
Mose Müller
658fb13d9d
improves Client._notify_changed by not emitting sio events when properties change
2024-03-29 08:44:48 +01:00
Mose Müller
a582dc23ac
makes proxyclass reconnection wait time a float to not get warning
2024-03-29 08:44:20 +01:00