Mose Müller
155957f0c5
fix: pass credentials to cross-origin fetch requests
2024-11-19 11:47:28 +01:00
Mose Müller
5403b51a5b
escape the user input before including it in the HTML response
2024-11-18 09:34:58 +01:00
Mose Müller
1270400e95
updates pydase.Client to handle services behind PathPrefix proxy
2024-11-18 09:34:58 +01:00
Mose Müller
3d2bb1c528
updates comments in index.html
2024-11-18 09:34:58 +01:00
Mose Müller
7c68f02cfd
npm run build
2024-11-18 09:34:58 +01:00
Mose Müller
fdfdef5837
gets X-Forwarded-Prefix from requests and adds it to index.html
2024-11-18 09:34:58 +01:00
Mose Müller
5f2619500b
removes unused constants
2024-10-03 14:30:28 +02:00
Mose Müller
c25ff4a3aa
fixes docstring of add_prefix_to_full_access_path
2024-10-03 10:59:21 +02:00
Mose Müller
3f6692a1cd
DataService.__warn_if_not_observable does not warn if setting function
2024-10-03 10:55:28 +02:00
Mose Müller
9eedf03c01
adds reconnection method to proxy class which is called when the sio client does not reconnect
2024-10-02 09:18:32 +02:00
Mose Müller
2e0e056489
adds sio_client_kwargs as pydase.Client keyword argument
2024-10-02 07:10:34 +02:00
Mose Müller
e52a019d5e
fixes add_prefix_to_full_access_path, updates tests
...
The prefix does not contain a "." anymore. This will be added by the
function itself (to be able to distinguish empty full access paths).
2024-10-01 11:01:01 +02:00
Mose Müller
0d5cef1537
updates how Client handles (re-)connection with the server
...
The client will update the proxy class serialization directly on the
ProxyClass instance. this is the only time this get "updated".
Now, the client also notifies the observers directly with the proxy
object as this the serialization of the proxy class is now done through
its `serialize` method (which we have overwritten in a previous commit).
2024-10-01 10:55:29 +02:00
Mose Müller
e8f33eee4d
updates ProxyClass serialize method
...
The ProxyClass will keep a copy of its serialized state s.t. it does not
have to call the remote service. This hangs the event loop if trying to
call asyncio.run_coroutine_threadsafe when already inside the thread.
2024-10-01 10:55:29 +02:00
Mose Müller
a3b71b174c
fixes proxy class serialization (needs device connection methods and properties)
2024-10-01 08:25:39 +02:00
Mose Müller
e2ce0e9acb
adds ProxyClass serialization support
2024-10-01 07:27:27 +02:00
Mose Müller
f47a183c11
adds add_prefix_to_full_access_path helper function
2024-10-01 07:13:22 +02:00
Mose Müller
a9ea237cf3
overrides serialize method in ProxyClass, getting it from remote service
2024-09-30 16:58:01 +02:00
Mose Müller
6db1652dd3
move ProxyClass into separate file
2024-09-30 16:57:12 +02:00
Mose Müller
51bbaba162
writing to stdout instead of stderr
2024-09-30 10:54:58 +02:00
Mose Müller
3e21858cb7
removes basic configuration of logging system in task module
2024-09-25 19:48:32 +02:00
Mose Müller
ec5694fedf
no need to check for RuntimeError as the loop is always new
2024-09-25 19:38:09 +02:00
Mose Müller
968f774092
always create a new event loop in the client and pass it to a new thread
2024-09-25 19:37:33 +02:00
Mose Müller
964a62d4b4
removes inheritance warning for descriptors
2024-09-23 13:33:13 +02:00
Mose Müller
99aa38fcfe
chore: removes unused code
2024-09-23 13:28:08 +02:00
Mose Müller
487ef504a8
normalizes full access path strings containing dict keys with double quotes
...
Full access paths containing stringed dictionary keys are sent with
double quotes from the frontend. The quotes have to be changed to single
quotes s.t. the comparison with the property dependency dictionary
works.
2024-09-23 13:16:49 +02:00
Mose Müller
e491ac7458
observable does not have to initialise descriptor objects anymore
...
The task decorator is not returning a Task object directly anymore, but
rather a descriptor which is returning the task. This is where the task
is initialised and this does not have to be done in the observable base
class, any more.
2024-09-23 09:27:15 +02:00
Mose Müller
e9d8cbafc2
adds PerInstanceTaskDescriptor class managing task objects for service class instances
...
When defining a task on a DataService class, formerly a task object was
created which replaced the decorated method as a class attribute. This
caused errors when using multiple instances of that class as each
instance was referring to the same task.
This descriptor class now handles the tasks per instance of the service
class.
2024-09-23 09:21:04 +02:00
Mose Müller
aa705592b2
removes code from Task meant to bind the passed function to the containing class instance
...
The task object will only receive bound methods, so there is no need to
keep the descriptor functionality anymore.
2024-09-23 09:15:42 +02:00
Mose Müller
008e1262bb
updates PropertyObserver to support descriptors returning observables
...
If a class attribute is a descriptor, get its value before checking if
it is an Observable.
2024-09-23 08:57:00 +02:00
Mose Müller
91a71ad004
updates is_descriptor to exclude false positives for methods, functions and builtins
2024-09-23 08:55:44 +02:00
Mose Müller
983d392ba8
properly handle Task objects in autostart method
...
Tasks that are not autostart or are already running were passed to
autostart_nested_services. This caused the recursion as tasks have a
__self__ attribute pointing to the containing service.
2024-09-21 11:40:25 +02:00
Mose Müller
56dd9dd8aa
adapts autostart to support nested lists in dicts and vice versa
2024-09-21 09:12:01 +02:00
Mose Müller
488415436c
fixes recursion when defining task without autostart
2024-09-21 08:32:54 +02:00
Mose Müller
e74b5c773a
npm run build
2024-09-17 16:51:00 +02:00
Mose Müller
ece68b4b99
docs: updates Task documentation
...
- updates Tasks.md
- updates docstrings
- adds api section
2024-09-16 15:30:47 +02:00
Mose Müller
0c95b5e3cb
frontend: removes AsyncMethodComponent (replaced by Task)
2024-09-16 14:22:29 +02:00
Mose Müller
2f5a640c4c
chore: refactored task autostart
2024-09-16 14:17:20 +02:00
Mose Müller
78964be506
adds serialization and deserialization support for task objects
2024-09-16 13:58:58 +02:00
Mose Müller
fbdf6de63c
npm run build
2024-09-16 13:58:16 +02:00
Mose Müller
62f28f79db
adds list and dictionary entries to task autostart
2024-09-16 07:53:44 +02:00
Mose Müller
e422d627af
adds docstring to autostart method
2024-09-13 16:07:30 +02:00
Mose Müller
71adc8bea2
adds autostart to server
2024-09-13 12:37:29 +02:00
Mose Müller
bfa0acedab
moves autostart from Task to separate autostart submodule
2024-09-13 12:37:18 +02:00
Mose Müller
416b9ee815
removes part of serializer for serializing start and stop methods of async methods
2024-09-13 11:27:30 +02:00
Mose Müller
d1d2ac2614
fixing circular import
2024-09-13 11:27:30 +02:00
Mose Müller
fa35fa53e2
removes TaskManager
2024-09-13 11:27:30 +02:00
Mose Müller
c0e5a77d6f
simplifies @task decorator (updates types), moves task logic into Task's run_task()
2024-09-13 11:27:30 +02:00
Mose Müller
96cc7b31b4
updates documentation
2024-09-13 11:27:30 +02:00
Mose Müller
0d6d312f68
chore: fixes type hints for python 3.10
2024-09-13 11:27:30 +02:00