Chrislearn Young
dcfaee05b7
Fix all `cargo clippy` warning
6 months ago
haixuantao
d03b6d138b
Add pyo3 special method
6 months ago
sjfhsjfh
20c9269f64
chore: make run function public
6 months ago
Philipp Oppermann
735ff9d9a8
Revert "Debug: Comment out Python `run` function"
This reverts commit 3c68d4c52a .
7 months ago
Philipp Oppermann
3c68d4c52a
Debug: Comment out Python `run` function
7 months ago
Philipp Oppermann
a19ab2d4c9
Fix: Handle error in Python `dataflow_descriptor` function
7 months ago
Philipp Oppermann
51ed0194c7
Rework and refactor for two-step build
7 months ago
haixuanTao
88643b955d
Adding `recv_async` dora method to retrieve data in python async
10 months ago
haixuantao
4d454e3db9
Adding run comand within python API
10 months ago
Philipp Oppermann
10b2435381
Replace deprected pyo3 `to_object` call with `into_pyobject`
10 months ago
Philipp Oppermann
ee15517dce
Make `ShmemChannel` `Sync` as required by pyo3 0.23
10 months ago
haixuantao
d3a48d7b17
Bump arrow version to latest version
10 months ago
sunxunle
0fa5863b4f
chore: fix some typos in comment ( #759 )
Signed-off-by: sunxunle <sunxunle@ampere.tech>
1 year ago
haixuanTao
dd10bbf85c
Bump `pyo3` version to `0.22`
1 year ago
Philipp Oppermann
6a3dcecf33
Refactor: Move message definitions to `dora-message` crate
First step towards versioning the message definitions indepedently.
1 year ago
Philipp Oppermann
9cec8df1cc
Delay dropping of `DoraNode` in Python until all event data is freed
When dropping the `DoraNode`, it waits for the remaining drop tokens. This only works if all the dora events were already dropped before. With the Python GC, this is not guaranteed as some events might still be live on the heap (the user might even use them later). In such cases, we waited until we ran into a timeout, which resulted in very long exit times (see https://github.com/dora-rs/dora/issues/598 ).
This commit fixes this issue by adding a reference-counted copy of the `DoraNode` and `EventStream` to every event given to Python. This way, we can ensure that the underlying `DoraNode` is only dropped after the last event reference has been freed.
1 year ago
haixuanTao
2b1299deba
Derive Node special method
1 year ago
Eric Buehler
61d12274fb
Merge pull request #1 from haixuanTao/improve-eric-pyo3-derive-special-method
Add derivation fo python ros2 bridge
1 year ago
EricLBuehler
65b71810b6
Merge remote-tracking branch 'upstream/main' into proc_macro_dir
1 year ago
haixuanTao
42dcb07237
Add derivation fo rpython ros2 bridge
1 year ago
haixuanTao
c4263e6c8f
Remove bound from definition of .to_py_dict
1 year ago
haixuanTao
ae9aea24e0
update stubs definition
1 year ago
haixuanTao
b2eace277d
Transform custom PyEvent into standard python dictionary for easier debuggability.
Currently having a custom PyEvent make debugging very hard as fields are hidden within the class PyEvent that is defined within Rust Code.
Python user are getting really confused about this obscure class.
This PR transforms the class into a standard python dictionary.
1 year ago
EricLBuehler
8ff6d39a84
Use the new crate
1 year ago
Haixuan Xavier Tao
f34cbe2ffc
Merge pull request #517 from dora-rs/detached-python-process
Run dynamic node
1 year ago
haixuanTao
7d3a5de1c5
Make rust flexible logic and make sure to always use env variables DORA_NODE_CONFIG if it exists.
This remove the complexity of having to rename the node id when used within a yaml configuration.
1 year ago
EricLBuehler
19e26358b6
Rename and use multiple_pymethods trait
1 year ago
EricLBuehler
c40204d4d6
Format
1 year ago
EricLBuehler
5995ac28de
PoC in Node
1 year ago
haixuanTao
3ad402ce45
Add dynamic node event loop and dynamic node connection
1 year ago
Michael-J-Ward
bf088fc1eb
lint: fix clippy lint
1 year ago
Michael-J-Ward
25884b658a
update pyo3 to new bounds api
1 year ago
haixuantao
0f530906aa
Add dataflow_id getter in python
1 year ago
haixuanTao
597ee41428
Improving typing by adding dora prefix
1 year ago
haixuanTao
e790af385e
Using `__init__.py` as without using it
1 year ago
haixuanTao
4adc0889ba
Adding python IDE typing
1 year ago
haixuanTao
0cd5281325
Use duration instead of f32 secs
2 years ago
haixuanTao
b1b69693b7
Adding a timeout method to not block indefinetely
2 years ago
Philipp Oppermann
6154415cbc
Update Rust APIs and rust-dataflow-example to use arrow types
2 years ago
Philipp Oppermann
a882104b93
Fix: Count buffer length instead of owned capacity when sending arrow data
Buffer capacity is always 0 if the buffer is allocated externally. Also, we don't want to allocate unneccessary extra space if only parts of a buffer a used (e.g. when slicing).
2 years ago
Philipp Oppermann
19f9cc7c90
Add support for arbitrary Arrow types in Python API
2 years ago
Philipp Oppermann
b12f5e7620
Adjust python-ros2-dataflow example and move it to top level
2 years ago
Philipp Oppermann
bae02930df
Import ros2_bridge as experimental submodule of python node API
2 years ago
Philipp Oppermann
b3e5bf90f5
Add new MergeExternalSend trait for usage in Python
The only difference betwenn the two traits is the additional Send bound. We should unify this again using the trait-level impl trait feature once it's stable.
2 years ago
Philipp Oppermann
1cdb717839
Make `start_runtime` public
2 years ago
Philipp Oppermann
dfa71c77c5
Merge branch 'main' into python-ros2-bridge-example
2 years ago
Philipp Oppermann
34fefccbaa
Create `From` constructor for `ExternalEventStream`
2 years ago
haixuanTao
0220d1ef65
Adding `data_type` to metadata for typing output
2 years ago
haixuanTao
04b4da1ec7
Update API documentation
2 years ago
Philipp Oppermann
7a21d965a9
Implement event stream merging for Python
2 years ago