* Add support for operator overloading of `Duration`
This PR adds support for operator overloading of the `Duration` class in
python. This should improve the overall UX of the rclpy library.
---------
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
* Init types
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* add typealias
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Client:call generates TimeoutError exception when it is timed out.
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
* call Thread.is_alive() to make sure the thread has started.
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
---------
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
* Fix the race condition while calling rcl_shutdown
Signed-off-by: Barry Xu <barry.xu@sony.com>
* Avoid calling rcl_shutdown() multiple times on the same context
Signed-off-by: Barry Xu <barry.xu@sony.com>
* Multiple calls to Context::shutdown will throw an exception
Signed-off-by: Barry Xu <barry.xu@sony.com>
* Update the name of an exception
Signed-off-by: Barry Xu <barry.xu@sony.com>
---------
Signed-off-by: Barry Xu <barry.xu@sony.com>
* Stop using python_cmake_module.
We really don't need it anymore, and can just use the
builtin find_package(Python3).
* Set hints to find the python version we actually want.
The comment in the commit explains the reasoning behind it.
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
* Add types to parameter_client.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* remove extra Future
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Add types
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* string around type
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* string around type
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* use error
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* flake8
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* switch error raise order
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* unify error
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Closes rclpy:#1313
Current if spin_unitl_future_complete is called inside a nodes callback it removes the node from the executor
This results in any subsiquent waitables to never be checked by the node since the node is no longer in the executor
This aims to fix that by only removing the node from the executor if it wasn't already present
Signed-off-by: Jonathan Blixt <jmblixt3@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Add types to wait_for_message.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add copyright
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* move Handles into _rclpy_pybind11
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Move Handles into type stubs:
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Move Handles into type stubs
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* move [] into string
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* fix imports
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* remove extra line
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* puy _rclpy.Publisher in quotes
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* fix capitalization
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add EventHandle Constructor
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Use RuntimeError for context
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add TYPE_CHECKING import
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Replace rclpyHandle with stubs
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* Add types to qos.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add missing default value
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* TypeAlias 3.8
Signed-off-by: Michael Carlstrom <rmc170@case.edu>
* Flake8 fixes and simplification
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix depth=0 error
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix depth=0 error
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* combine error message
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* revert to is None
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* revert to is None
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix 0 falsey
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* flip self.depth
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* replace or with ternary
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Signed-off-by: Michael Carlstrom <rmc170@case.edu>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* First draft of generics
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix Generic
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add legacy
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix import order
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* fix import order
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add Docstrings
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add Docstrings
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add generics support to Node
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update type_support.py
Signed-off-by: Michael Carlstrom <36806982+InvincibleRMC@users.noreply.github.com>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to expand_topic_name (#1238)
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Creates Enum wrapper for ClockType and ClockChange (#1235)
* Testing out Enum wrapper for ClockType
* convert to rcl_clock_type_t
* Update create_time_point
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types (#1231)
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to exceptions.py (#1241)
* Add types to exception
* Add type checking guard
* Fix NotInitializedException
* Add missing defualt
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* added python3-yaml (#1242)
Signed-off-by: SnIcK <ido.samuelson@gmail.com>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to duration.py (#1233)
* Add types to logging_service.py (#1227)
* add types to logging_service
* Add types to duration.py
* Add newlines for class definintions
* update type alias name
* Update to use Protocols
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add Static Typing to Validate files (#1230)
* Add types to validate files
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* remove type annotations from docstrings
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* removed other type annotated docstrings
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to TypeHash and moved away from __slots__ usage (#1232)
* Add types to TypeHash and moved away from __slots__ usage
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* remove docstring types
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Time.py Types (#1237)
* Start typing time.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Testing out Enum wrapper for ClockType
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* convert to rcl_clock_type_t
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Undo Change to time_point.cpp
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update create_time_point
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Lint fixes
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add debug message
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Remove test file
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Try extending the type assert
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to logging_service.py (#1227)
* add types to logging_service
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to duration.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add newlines for class definintions
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* update type alias name
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Remove newline
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Merge?
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix failed merge
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update to use Protocols
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix import error
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to time.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Linty
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Revert "Add types to TypeHash and moved away from __slots__ usage (#1232)" (#1243)
This reverts commit b06baefa0b.
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add back Type hash __slots__ and add test cases. (#1245)
* Add types to TypeHash and add test cases
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to context.py (#1240)
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* fix pub and sub
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update LifecyclePublisher
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix docstring
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Start implementation
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Ungeneric?
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Stuff
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* serialization generic
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* serialization generic
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update type_support.py
Signed-off-by: Michael Carlstrom <36806982+InvincibleRMC@users.noreply.github.com>
* Client Service Generic Implementation
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix debug relative import
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update imports
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add generics to node.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update import order
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Remove double bracket
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Signed-off-by: Michael Carlstrom <36806982+InvincibleRMC@users.noreply.github.com>
Signed-off-by: SnIcK <ido.samuelson@gmail.com>
Co-authored-by: SnIcK <ido.samuelson@gmail.com>
Co-authored-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* Add types to ParameterService
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* ajust function typing
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Cleaner function signatures
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Rerun CI
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* Add types to timer.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Small fixes for modern flake8. (#1264)
It doesn't like to compare types with ==, so switch to
isinstance as appropriate.
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to time_source.py (#1259)
* Add types to time_source.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add TimerHandle docstring
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* resolve merge conflicts
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix Callback input to be optional
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* Types to rcutils_logger.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* remove unused types
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add back empty dictionary
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* rerun ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* update
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add ClassVar
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* re-run
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Remove explicit TypeAlias for older python versions
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix error suppresion
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Switch to ModuleNotFoundError
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Use typing.OrderedDict for python 3.8 support
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>
* Add types to parameter.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Revert "Add types to TypeHash and moved away from __slots__ usage (#1232)" (#1243)
This reverts commit b06baefa0b.
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add back Type hash __slots__ and add test cases. (#1245)
* Add types to TypeHash and add test cases
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to context.py (#1240)
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to qos_overriding_options.py (#1248)
Signed-off-by: Michael Carlstrom <rmc170@case.edu>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Small fixes for modern flake8. (#1264)
It doesn't like to compare types with ==, so switch to
isinstance as appropriate.
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add types to time_source.py (#1259)
* Add types to time_source.py
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* fix small bug
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Switch to overloads to avoid mypy3737
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update parameter declaration from Node
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* add back rclpy.
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Fix flake8 imports
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add proper array.array[]
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update types of declare_parameter, declare_parameters api
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add non conflicting types back to constructor
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Move sys import
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Update error message
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add default value for generic Parameter
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add explanation comment
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Add TypeVar import inside else case
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* push to rerun ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* push to rerun ci
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
* Switch back to union
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
---------
Signed-off-by: Michael Carlstrom <rmc@carlstrom.com>
Signed-off-by: Michael Carlstrom <rmc170@case.edu>
Signed-off-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: Chris Lalancette <clalancette@gmail.com>
Co-authored-by: Shane Loretz <sloretz@intrinsic.ai>