Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Add types to TypeHash and moved away from __slots__ usage" #1243

Merged
merged 1 commit into from
Mar 11, 2024

Conversation

clalancette
Copy link
Contributor

Reverts #1232

This is causing problems in CI: https://ci.ros2.org/job/ci_linux/20452/testReport/junit/ros2cli.ros2cli.test/test_daemon/test_get_subscriptions_info_by_topic/

In particular, it isn't clear to me why we removed the __slots__ (as that is a performance enhancement), and it is also causing downstream packages to fail.

@InvincibleRMC
Copy link
Contributor

Ah my apologies. I misunderstood the purpose of __slots__.

@clalancette
Copy link
Contributor Author

CI:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Windows Build Status

@fujitatomoya
Copy link
Collaborator

In particular, it isn't clear to me why we removed the slots (as that is a performance enhancement), and it is also causing downstream packages to fail.

@clalancette thanks for taking care of this. sorry i thought there is no dependency for TypeHash.__slot__ but there is https://github.com/ros2/ros2cli/blob/64d216cb8fafef83d046b79ee6294afb06b7c595/ros2cli/ros2cli/xmlrpc/marshal/rclpy.py#L90-L91

and as you mentioned, i think we should keep __slots__ for performance and security.

@clalancette clalancette merged commit f1873bf into rolling Mar 11, 2024
2 of 4 checks passed
@clalancette clalancette deleted the revert-1232-type-hash branch March 11, 2024 12:43
InvincibleRMC pushed a commit to InvincibleRMC/rclpy that referenced this pull request Mar 24, 2024
InvincibleRMC pushed a commit to InvincibleRMC/rclpy that referenced this pull request Mar 27, 2024
sloretz added a commit that referenced this pull request May 3, 2024
* First draft of generics

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix Generic

Signed-off-by: Michael Carlstrom <[email protected]>

* Add legacy

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix import order

Signed-off-by: Michael Carlstrom <[email protected]>

* fix import order

Signed-off-by: Michael Carlstrom <[email protected]>

* Add Docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* Add Docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* Add generics support to Node

Signed-off-by: Michael Carlstrom <[email protected]>

* Update type_support.py

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to expand_topic_name (#1238)

Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* Add types (#1231)

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to exceptions.py (#1241)

* Add types to exception

* Add type checking guard

* Fix NotInitializedException

* Add missing defualt

Signed-off-by: Michael Carlstrom <[email protected]>

* added python3-yaml (#1242)

Signed-off-by: SnIcK <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* Add Static Typing to Validate files (#1230)

* Add types to validate files

Signed-off-by: Michael Carlstrom <[email protected]>

* remove type annotations from docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* removed other type annotated docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* remove docstring types

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* Time.py Types (#1237)

* Start typing time.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Testing out Enum wrapper for ClockType

Signed-off-by: Michael Carlstrom <[email protected]>

* convert to rcl_clock_type_t

Signed-off-by: Michael Carlstrom <[email protected]>

* Undo Change to time_point.cpp

Signed-off-by: Michael Carlstrom <[email protected]>

* Update create_time_point

Signed-off-by: Michael Carlstrom <[email protected]>

* Lint fixes

Signed-off-by: Michael Carlstrom <[email protected]>

* Add debug message

Signed-off-by: Michael Carlstrom <[email protected]>

* Remove test file

Signed-off-by: Michael Carlstrom <[email protected]>

* Try extending the type assert

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to logging_service.py (#1227)

* add types to logging_service

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to duration.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Add newlines for class definintions

Signed-off-by: Michael Carlstrom <[email protected]>

* update type alias name

Signed-off-by: Michael Carlstrom <[email protected]>

* Remove newline

Signed-off-by: Michael Carlstrom <[email protected]>

* Merge?

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix failed merge

Signed-off-by: Michael Carlstrom <[email protected]>

* Update to use Protocols

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix import error

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to time.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Linty

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* Revert "Add types to TypeHash and moved away from __slots__ usage (#1232)" (#1243)

This reverts commit b06baef.

Signed-off-by: Michael Carlstrom <[email protected]>

* Add back Type hash __slots__ and add test cases. (#1245)

* Add types to TypeHash and add test cases

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to context.py (#1240)

Signed-off-by: Michael Carlstrom <[email protected]>

* fix pub and sub

Signed-off-by: Michael Carlstrom <[email protected]>

* Update LifecyclePublisher

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix docstring

Signed-off-by: Michael Carlstrom <[email protected]>

* serialization generic

Signed-off-by: Michael Carlstrom <[email protected]>

* serialization generic

Signed-off-by: Michael Carlstrom <[email protected]>

* Update type_support.py

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: SnIcK <[email protected]>
Signed-off-by: Shane Loretz <[email protected]>
Co-authored-by: SnIcK <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Shane Loretz <[email protected]>
sloretz added a commit that referenced this pull request Aug 2, 2024
* Add types to parameter.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Revert "Add types to TypeHash and moved away from __slots__ usage (#1232)" (#1243)

This reverts commit b06baef.

Signed-off-by: Michael Carlstrom <[email protected]>

* Add back Type hash __slots__ and add test cases. (#1245)

* Add types to TypeHash and add test cases

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to context.py (#1240)

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to qos_overriding_options.py (#1248)

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to time_source.py (#1259)

* Add types to time_source.py

Signed-off-by: Michael Carlstrom <[email protected]>

* fix small bug

Signed-off-by: Michael Carlstrom <[email protected]>

* Switch to overloads to avoid mypy3737

Signed-off-by: Michael Carlstrom <[email protected]>

* Update parameter declaration from Node

Signed-off-by: Michael Carlstrom <[email protected]>

* add back rclpy.

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix flake8 imports

Signed-off-by: Michael Carlstrom <[email protected]>

* Add proper array.array[]

Signed-off-by: Michael Carlstrom <[email protected]>

* Update types of declare_parameter, declare_parameters api

Signed-off-by: Michael Carlstrom <[email protected]>

* Add non conflicting types back to constructor

Signed-off-by: Michael Carlstrom <[email protected]>

* Move sys import

Signed-off-by: Michael Carlstrom <[email protected]>

* Update error message

Signed-off-by: Michael Carlstrom <[email protected]>

* Add default value for generic Parameter

Signed-off-by: Michael Carlstrom <[email protected]>

* Add explanation comment

Signed-off-by: Michael Carlstrom <[email protected]>

* Add TypeVar import inside else case

Signed-off-by: Michael Carlstrom <[email protected]>

* push to rerun ci

Signed-off-by: Michael Carlstrom <[email protected]>

* push to rerun ci

Signed-off-by: Michael Carlstrom <[email protected]>

* Switch back to union

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Chris Lalancette <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Shane Loretz <[email protected]>
sloretz added a commit that referenced this pull request Aug 5, 2024
* First draft of generics

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix Generic

Signed-off-by: Michael Carlstrom <[email protected]>

* Add legacy

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix import order

Signed-off-by: Michael Carlstrom <[email protected]>

* fix import order

Signed-off-by: Michael Carlstrom <[email protected]>

* Add Docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* Add Docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* Add generics support to Node

Signed-off-by: Michael Carlstrom <[email protected]>

* Update type_support.py

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to expand_topic_name (#1238)

Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* Add types (#1231)

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to exceptions.py (#1241)

* Add types to exception

* Add type checking guard

* Fix NotInitializedException

* Add missing defualt

Signed-off-by: Michael Carlstrom <[email protected]>

* added python3-yaml (#1242)

Signed-off-by: SnIcK <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* Add Static Typing to Validate files (#1230)

* Add types to validate files

Signed-off-by: Michael Carlstrom <[email protected]>

* remove type annotations from docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

* removed other type annotated docstrings

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* 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 <[email protected]>

* remove docstring types

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* Time.py Types (#1237)

* Start typing time.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Testing out Enum wrapper for ClockType

Signed-off-by: Michael Carlstrom <[email protected]>

* convert to rcl_clock_type_t

Signed-off-by: Michael Carlstrom <[email protected]>

* Undo Change to time_point.cpp

Signed-off-by: Michael Carlstrom <[email protected]>

* Update create_time_point

Signed-off-by: Michael Carlstrom <[email protected]>

* Lint fixes

Signed-off-by: Michael Carlstrom <[email protected]>

* Add debug message

Signed-off-by: Michael Carlstrom <[email protected]>

* Remove test file

Signed-off-by: Michael Carlstrom <[email protected]>

* Try extending the type assert

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to logging_service.py (#1227)

* add types to logging_service

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to duration.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Add newlines for class definintions

Signed-off-by: Michael Carlstrom <[email protected]>

* update type alias name

Signed-off-by: Michael Carlstrom <[email protected]>

* Remove newline

Signed-off-by: Michael Carlstrom <[email protected]>

* Merge?

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix failed merge

Signed-off-by: Michael Carlstrom <[email protected]>

* Update to use Protocols

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix import error

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to time.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Linty

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>

* Revert "Add types to TypeHash and moved away from __slots__ usage (#1232)" (#1243)

This reverts commit b06baef.

Signed-off-by: Michael Carlstrom <[email protected]>

* Add back Type hash __slots__ and add test cases. (#1245)

* Add types to TypeHash and add test cases

Signed-off-by: Michael Carlstrom <[email protected]>

* Add types to context.py (#1240)

Signed-off-by: Michael Carlstrom <[email protected]>

* fix pub and sub

Signed-off-by: Michael Carlstrom <[email protected]>

* Update LifecyclePublisher

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix docstring

Signed-off-by: Michael Carlstrom <[email protected]>

* Start implementation

Signed-off-by: Michael Carlstrom <[email protected]>

* Ungeneric?

Signed-off-by: Michael Carlstrom <[email protected]>

* Stuff

Signed-off-by: Michael Carlstrom <[email protected]>

* serialization generic

Signed-off-by: Michael Carlstrom <[email protected]>

* serialization generic

Signed-off-by: Michael Carlstrom <[email protected]>

* Update type_support.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Client Service Generic Implementation

Signed-off-by: Michael Carlstrom <[email protected]>

* Fix debug relative import

Signed-off-by: Michael Carlstrom <[email protected]>

* Update imports

Signed-off-by: Michael Carlstrom <[email protected]>

* Add generics to node.py

Signed-off-by: Michael Carlstrom <[email protected]>

* Update import order

Signed-off-by: Michael Carlstrom <[email protected]>

* Remove double bracket

Signed-off-by: Michael Carlstrom <[email protected]>

---------

Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: Michael Carlstrom <[email protected]>
Signed-off-by: SnIcK <[email protected]>
Co-authored-by: SnIcK <[email protected]>
Co-authored-by: Chris Lalancette <[email protected]>
Co-authored-by: Shane Loretz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants